@project-ava-supernova/core 0.2.71
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/agent/agent.d.ts +623 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +3558 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/claims-auditor.d.ts +54 -0
- package/dist/agent/claims-auditor.d.ts.map +1 -0
- package/dist/agent/claims-auditor.js +125 -0
- package/dist/agent/claims-auditor.js.map +1 -0
- package/dist/agent/context-continuity.d.ts +125 -0
- package/dist/agent/context-continuity.d.ts.map +1 -0
- package/dist/agent/context-continuity.js +231 -0
- package/dist/agent/context-continuity.js.map +1 -0
- package/dist/agent/conversation.d.ts +26 -0
- package/dist/agent/conversation.d.ts.map +1 -0
- package/dist/agent/conversation.js +86 -0
- package/dist/agent/conversation.js.map +1 -0
- package/dist/agent/design-reinjection.d.ts +93 -0
- package/dist/agent/design-reinjection.d.ts.map +1 -0
- package/dist/agent/design-reinjection.js +235 -0
- package/dist/agent/design-reinjection.js.map +1 -0
- package/dist/agent/error-loop-detector.d.ts +59 -0
- package/dist/agent/error-loop-detector.d.ts.map +1 -0
- package/dist/agent/error-loop-detector.js +124 -0
- package/dist/agent/error-loop-detector.js.map +1 -0
- package/dist/agent/fresh-eyes.d.ts +52 -0
- package/dist/agent/fresh-eyes.d.ts.map +1 -0
- package/dist/agent/fresh-eyes.js +118 -0
- package/dist/agent/fresh-eyes.js.map +1 -0
- package/dist/agent/intent-classifier.d.ts +51 -0
- package/dist/agent/intent-classifier.d.ts.map +1 -0
- package/dist/agent/intent-classifier.js +125 -0
- package/dist/agent/intent-classifier.js.map +1 -0
- package/dist/agent/post-edit-verify.d.ts +79 -0
- package/dist/agent/post-edit-verify.d.ts.map +1 -0
- package/dist/agent/post-edit-verify.js +143 -0
- package/dist/agent/post-edit-verify.js.map +1 -0
- package/dist/agent/recover-written-calls.d.ts +90 -0
- package/dist/agent/recover-written-calls.d.ts.map +1 -0
- package/dist/agent/recover-written-calls.js +257 -0
- package/dist/agent/recover-written-calls.js.map +1 -0
- package/dist/agent/social-craft.d.ts +76 -0
- package/dist/agent/social-craft.d.ts.map +1 -0
- package/dist/agent/social-craft.js +210 -0
- package/dist/agent/social-craft.js.map +1 -0
- package/dist/agent/stop-command.d.ts +23 -0
- package/dist/agent/stop-command.d.ts.map +1 -0
- package/dist/agent/stop-command.js +59 -0
- package/dist/agent/stop-command.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +125 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +1334 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/agent/task-classifier.d.ts +50 -0
- package/dist/agent/task-classifier.d.ts.map +1 -0
- package/dist/agent/task-classifier.js +187 -0
- package/dist/agent/task-classifier.js.map +1 -0
- package/dist/agent/text-tool-parser.d.ts +34 -0
- package/dist/agent/text-tool-parser.d.ts.map +1 -0
- package/dist/agent/text-tool-parser.js +96 -0
- package/dist/agent/text-tool-parser.js.map +1 -0
- package/dist/agent/vision-bridge.d.ts +29 -0
- package/dist/agent/vision-bridge.d.ts.map +1 -0
- package/dist/agent/vision-bridge.js +143 -0
- package/dist/agent/vision-bridge.js.map +1 -0
- package/dist/audit/cost.d.ts +18 -0
- package/dist/audit/cost.d.ts.map +1 -0
- package/dist/audit/cost.js +170 -0
- package/dist/audit/cost.js.map +1 -0
- package/dist/audit/export.d.ts +30 -0
- package/dist/audit/export.d.ts.map +1 -0
- package/dist/audit/export.js +155 -0
- package/dist/audit/export.js.map +1 -0
- package/dist/audit/index.d.ts +11 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/integrity.d.ts +7 -0
- package/dist/audit/integrity.d.ts.map +1 -0
- package/dist/audit/integrity.js +78 -0
- package/dist/audit/integrity.js.map +1 -0
- package/dist/audit/logger.d.ts +18 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +113 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/patterns.d.ts +34 -0
- package/dist/audit/patterns.d.ts.map +1 -0
- package/dist/audit/patterns.js +104 -0
- package/dist/audit/patterns.js.map +1 -0
- package/dist/audit/security.d.ts +8 -0
- package/dist/audit/security.d.ts.map +1 -0
- package/dist/audit/security.js +56 -0
- package/dist/audit/security.js.map +1 -0
- package/dist/audit/summary.d.ts +22 -0
- package/dist/audit/summary.d.ts.map +1 -0
- package/dist/audit/summary.js +51 -0
- package/dist/audit/summary.js.map +1 -0
- package/dist/audit/types.d.ts +104 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +11 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/auto/aurora-router.d.ts +71 -0
- package/dist/auto/aurora-router.d.ts.map +1 -0
- package/dist/auto/aurora-router.js +138 -0
- package/dist/auto/aurora-router.js.map +1 -0
- package/dist/auto/auto-coordinator.d.ts +232 -0
- package/dist/auto/auto-coordinator.d.ts.map +1 -0
- package/dist/auto/auto-coordinator.js +1260 -0
- package/dist/auto/auto-coordinator.js.map +1 -0
- package/dist/auto/brief-generator.d.ts +10 -0
- package/dist/auto/brief-generator.d.ts.map +1 -0
- package/dist/auto/brief-generator.js +67 -0
- package/dist/auto/brief-generator.js.map +1 -0
- package/dist/auto/changes-summary.d.ts +19 -0
- package/dist/auto/changes-summary.d.ts.map +1 -0
- package/dist/auto/changes-summary.js +45 -0
- package/dist/auto/changes-summary.js.map +1 -0
- package/dist/auto/context-tracker.d.ts +27 -0
- package/dist/auto/context-tracker.d.ts.map +1 -0
- package/dist/auto/context-tracker.js +56 -0
- package/dist/auto/context-tracker.js.map +1 -0
- package/dist/auto/coordinator-model.d.ts +31 -0
- package/dist/auto/coordinator-model.d.ts.map +1 -0
- package/dist/auto/coordinator-model.js +68 -0
- package/dist/auto/coordinator-model.js.map +1 -0
- package/dist/auto/index.d.ts +12 -0
- package/dist/auto/index.d.ts.map +1 -0
- package/dist/auto/index.js +11 -0
- package/dist/auto/index.js.map +1 -0
- package/dist/auto/intent-gate.d.ts +85 -0
- package/dist/auto/intent-gate.d.ts.map +1 -0
- package/dist/auto/intent-gate.js +247 -0
- package/dist/auto/intent-gate.js.map +1 -0
- package/dist/auto/longxiang-router.d.ts +123 -0
- package/dist/auto/longxiang-router.d.ts.map +1 -0
- package/dist/auto/longxiang-router.js +184 -0
- package/dist/auto/longxiang-router.js.map +1 -0
- package/dist/auto/model-router.d.ts +42 -0
- package/dist/auto/model-router.d.ts.map +1 -0
- package/dist/auto/model-router.js +208 -0
- package/dist/auto/model-router.js.map +1 -0
- package/dist/auto/routing-modes.d.ts +33 -0
- package/dist/auto/routing-modes.d.ts.map +1 -0
- package/dist/auto/routing-modes.js +34 -0
- package/dist/auto/routing-modes.js.map +1 -0
- package/dist/auto/supernova-router.d.ts +50 -0
- package/dist/auto/supernova-router.d.ts.map +1 -0
- package/dist/auto/supernova-router.js +116 -0
- package/dist/auto/supernova-router.js.map +1 -0
- package/dist/auto/task-classifier.d.ts +10 -0
- package/dist/auto/task-classifier.d.ts.map +1 -0
- package/dist/auto/task-classifier.js +116 -0
- package/dist/auto/task-classifier.js.map +1 -0
- package/dist/auto/task-executor.d.ts +86 -0
- package/dist/auto/task-executor.d.ts.map +1 -0
- package/dist/auto/task-executor.js +271 -0
- package/dist/auto/task-executor.js.map +1 -0
- package/dist/auto/types.d.ts +57 -0
- package/dist/auto/types.d.ts.map +1 -0
- package/dist/auto/types.js +2 -0
- package/dist/auto/types.js.map +1 -0
- package/dist/awareness/tick-engine.d.ts +73 -0
- package/dist/awareness/tick-engine.d.ts.map +1 -0
- package/dist/awareness/tick-engine.js +156 -0
- package/dist/awareness/tick-engine.js.map +1 -0
- package/dist/billing/credits.d.ts +213 -0
- package/dist/billing/credits.d.ts.map +1 -0
- package/dist/billing/credits.js +535 -0
- package/dist/billing/credits.js.map +1 -0
- package/dist/billing/meter.d.ts +43 -0
- package/dist/billing/meter.d.ts.map +1 -0
- package/dist/billing/meter.js +67 -0
- package/dist/billing/meter.js.map +1 -0
- package/dist/billing/plans.d.ts +34 -0
- package/dist/billing/plans.d.ts.map +1 -0
- package/dist/billing/plans.js +108 -0
- package/dist/billing/plans.js.map +1 -0
- package/dist/briefing/briefing-engine.d.ts +51 -0
- package/dist/briefing/briefing-engine.d.ts.map +1 -0
- package/dist/briefing/briefing-engine.js +289 -0
- package/dist/briefing/briefing-engine.js.map +1 -0
- package/dist/briefing/index.d.ts +3 -0
- package/dist/briefing/index.d.ts.map +1 -0
- package/dist/briefing/index.js +2 -0
- package/dist/briefing/index.js.map +1 -0
- package/dist/briefing/types.d.ts +49 -0
- package/dist/briefing/types.d.ts.map +1 -0
- package/dist/briefing/types.js +8 -0
- package/dist/briefing/types.js.map +1 -0
- package/dist/checkpoint/checkpoint-manager.d.ts +33 -0
- package/dist/checkpoint/checkpoint-manager.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint-manager.js +144 -0
- package/dist/checkpoint/checkpoint-manager.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +169 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/personality.d.ts +32 -0
- package/dist/config/personality.d.ts.map +1 -0
- package/dist/config/personality.js +96 -0
- package/dist/config/personality.js.map +1 -0
- package/dist/config/project-config.d.ts +17 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +38 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/config/project.d.ts +155 -0
- package/dist/config/project.d.ts.map +1 -0
- package/dist/config/project.js +746 -0
- package/dist/config/project.js.map +1 -0
- package/dist/config/schema.d.ts +61 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +11 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/constants.d.ts +13 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +15 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/dates.d.ts +35 -0
- package/dist/core/dates.d.ts.map +1 -0
- package/dist/core/dates.js +45 -0
- package/dist/core/dates.js.map +1 -0
- package/dist/core/errors.d.ts +27 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +172 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/file-lock.d.ts +22 -0
- package/dist/core/file-lock.d.ts.map +1 -0
- package/dist/core/file-lock.js +120 -0
- package/dist/core/file-lock.js.map +1 -0
- package/dist/core/logger.d.ts +9 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +32 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/types.d.ts +157 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +13 -0
- package/dist/core/types.js.map +1 -0
- package/dist/creative/index.d.ts +50 -0
- package/dist/creative/index.d.ts.map +1 -0
- package/dist/creative/index.js +178 -0
- package/dist/creative/index.js.map +1 -0
- package/dist/dataset/capture.d.ts +15 -0
- package/dist/dataset/capture.d.ts.map +1 -0
- package/dist/dataset/capture.js +203 -0
- package/dist/dataset/capture.js.map +1 -0
- package/dist/dataset/config.d.ts +33 -0
- package/dist/dataset/config.d.ts.map +1 -0
- package/dist/dataset/config.js +60 -0
- package/dist/dataset/config.js.map +1 -0
- package/dist/dataset/consumer.d.ts +33 -0
- package/dist/dataset/consumer.d.ts.map +1 -0
- package/dist/dataset/consumer.js +97 -0
- package/dist/dataset/consumer.js.map +1 -0
- package/dist/dataset/emitter.d.ts +153 -0
- package/dist/dataset/emitter.d.ts.map +1 -0
- package/dist/dataset/emitter.js +157 -0
- package/dist/dataset/emitter.js.map +1 -0
- package/dist/dataset/events.d.ts +360 -0
- package/dist/dataset/events.d.ts.map +1 -0
- package/dist/dataset/events.js +30 -0
- package/dist/dataset/events.js.map +1 -0
- package/dist/dataset/generation-emit.d.ts +72 -0
- package/dist/dataset/generation-emit.d.ts.map +1 -0
- package/dist/dataset/generation-emit.js +94 -0
- package/dist/dataset/generation-emit.js.map +1 -0
- package/dist/dataset/redactor.d.ts +22 -0
- package/dist/dataset/redactor.d.ts.map +1 -0
- package/dist/dataset/redactor.js +68 -0
- package/dist/dataset/redactor.js.map +1 -0
- package/dist/dataset/routing.d.ts +17 -0
- package/dist/dataset/routing.d.ts.map +1 -0
- package/dist/dataset/routing.js +77 -0
- package/dist/dataset/routing.js.map +1 -0
- package/dist/dataset/summarizers.d.ts +47 -0
- package/dist/dataset/summarizers.d.ts.map +1 -0
- package/dist/dataset/summarizers.js +98 -0
- package/dist/dataset/summarizers.js.map +1 -0
- package/dist/dataset/verification.d.ts +29 -0
- package/dist/dataset/verification.d.ts.map +1 -0
- package/dist/dataset/verification.js +70 -0
- package/dist/dataset/verification.js.map +1 -0
- package/dist/desktop/budget.d.ts +66 -0
- package/dist/desktop/budget.d.ts.map +1 -0
- package/dist/desktop/budget.js +159 -0
- package/dist/desktop/budget.js.map +1 -0
- package/dist/desktop/capability.d.ts +28 -0
- package/dist/desktop/capability.d.ts.map +1 -0
- package/dist/desktop/capability.js +39 -0
- package/dist/desktop/capability.js.map +1 -0
- package/dist/desktop/conductor.d.ts +104 -0
- package/dist/desktop/conductor.d.ts.map +1 -0
- package/dist/desktop/conductor.js +876 -0
- package/dist/desktop/conductor.js.map +1 -0
- package/dist/desktop/fork-points.d.ts +56 -0
- package/dist/desktop/fork-points.d.ts.map +1 -0
- package/dist/desktop/fork-points.js +138 -0
- package/dist/desktop/fork-points.js.map +1 -0
- package/dist/desktop/index.d.ts +22 -0
- package/dist/desktop/index.d.ts.map +1 -0
- package/dist/desktop/index.js +21 -0
- package/dist/desktop/index.js.map +1 -0
- package/dist/desktop/perception.d.ts +24 -0
- package/dist/desktop/perception.d.ts.map +1 -0
- package/dist/desktop/perception.js +106 -0
- package/dist/desktop/perception.js.map +1 -0
- package/dist/desktop/personas.d.ts +30 -0
- package/dist/desktop/personas.d.ts.map +1 -0
- package/dist/desktop/personas.js +206 -0
- package/dist/desktop/personas.js.map +1 -0
- package/dist/desktop/safety.d.ts +86 -0
- package/dist/desktop/safety.d.ts.map +1 -0
- package/dist/desktop/safety.js +272 -0
- package/dist/desktop/safety.js.map +1 -0
- package/dist/desktop/screen-key.d.ts +54 -0
- package/dist/desktop/screen-key.d.ts.map +1 -0
- package/dist/desktop/screen-key.js +187 -0
- package/dist/desktop/screen-key.js.map +1 -0
- package/dist/desktop/types.d.ts +141 -0
- package/dist/desktop/types.d.ts.map +1 -0
- package/dist/desktop/types.js +8 -0
- package/dist/desktop/types.js.map +1 -0
- package/dist/docs/adapter.d.ts +71 -0
- package/dist/docs/adapter.d.ts.map +1 -0
- package/dist/docs/adapter.js +75 -0
- package/dist/docs/adapter.js.map +1 -0
- package/dist/docs/content/concepts.d.ts +3 -0
- package/dist/docs/content/concepts.d.ts.map +1 -0
- package/dist/docs/content/concepts.js +304 -0
- package/dist/docs/content/concepts.js.map +1 -0
- package/dist/docs/content/features.d.ts +3 -0
- package/dist/docs/content/features.d.ts.map +1 -0
- package/dist/docs/content/features.js +275 -0
- package/dist/docs/content/features.js.map +1 -0
- package/dist/docs/content/index.d.ts +3 -0
- package/dist/docs/content/index.d.ts.map +1 -0
- package/dist/docs/content/index.js +15 -0
- package/dist/docs/content/index.js.map +1 -0
- package/dist/docs/content/reference.d.ts +3 -0
- package/dist/docs/content/reference.d.ts.map +1 -0
- package/dist/docs/content/reference.js +220 -0
- package/dist/docs/content/reference.js.map +1 -0
- package/dist/docs/content/start.d.ts +3 -0
- package/dist/docs/content/start.d.ts.map +1 -0
- package/dist/docs/content/start.js +203 -0
- package/dist/docs/content/start.js.map +1 -0
- package/dist/docs/content/troubleshooting.d.ts +3 -0
- package/dist/docs/content/troubleshooting.d.ts.map +1 -0
- package/dist/docs/content/troubleshooting.js +98 -0
- package/dist/docs/content/troubleshooting.js.map +1 -0
- package/dist/docs/corpus.d.ts +7 -0
- package/dist/docs/corpus.d.ts.map +1 -0
- package/dist/docs/corpus.js +18 -0
- package/dist/docs/corpus.js.map +1 -0
- package/dist/docs/data/capabilities.d.ts +24 -0
- package/dist/docs/data/capabilities.d.ts.map +1 -0
- package/dist/docs/data/capabilities.js +63 -0
- package/dist/docs/data/capabilities.js.map +1 -0
- package/dist/docs/data/modes.d.ts +11 -0
- package/dist/docs/data/modes.d.ts.map +1 -0
- package/dist/docs/data/modes.js +60 -0
- package/dist/docs/data/modes.js.map +1 -0
- package/dist/docs/data/permissions.d.ts +12 -0
- package/dist/docs/data/permissions.d.ts.map +1 -0
- package/dist/docs/data/permissions.js +62 -0
- package/dist/docs/data/permissions.js.map +1 -0
- package/dist/docs/data/personas.d.ts +13 -0
- package/dist/docs/data/personas.d.ts.map +1 -0
- package/dist/docs/data/personas.js +42 -0
- package/dist/docs/data/personas.js.map +1 -0
- package/dist/docs/data/providers.d.ts +21 -0
- package/dist/docs/data/providers.d.ts.map +1 -0
- package/dist/docs/data/providers.js +210 -0
- package/dist/docs/data/providers.js.map +1 -0
- package/dist/docs/data/shortcuts.d.ts +9 -0
- package/dist/docs/data/shortcuts.d.ts.map +1 -0
- package/dist/docs/data/shortcuts.js +18 -0
- package/dist/docs/data/shortcuts.js.map +1 -0
- package/dist/docs/data/tasks.d.ts +17 -0
- package/dist/docs/data/tasks.d.ts.map +1 -0
- package/dist/docs/data/tasks.js +64 -0
- package/dist/docs/data/tasks.js.map +1 -0
- package/dist/docs/data/tools.d.ts +12 -0
- package/dist/docs/data/tools.d.ts.map +1 -0
- package/dist/docs/data/tools.js +100 -0
- package/dist/docs/data/tools.js.map +1 -0
- package/dist/docs/filter.d.ts +35 -0
- package/dist/docs/filter.d.ts.map +1 -0
- package/dist/docs/filter.js +68 -0
- package/dist/docs/filter.js.map +1 -0
- package/dist/docs/i18n/translations.d.ts +2 -0
- package/dist/docs/i18n/translations.d.ts.map +1 -0
- package/dist/docs/i18n/translations.js +4 -0
- package/dist/docs/i18n/translations.js.map +1 -0
- package/dist/docs/i18n.d.ts +15 -0
- package/dist/docs/i18n.d.ts.map +1 -0
- package/dist/docs/i18n.js +88 -0
- package/dist/docs/i18n.js.map +1 -0
- package/dist/docs/index.d.ts +16 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +15 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/product-knowledge.d.ts +45 -0
- package/dist/docs/product-knowledge.d.ts.map +1 -0
- package/dist/docs/product-knowledge.js +147 -0
- package/dist/docs/product-knowledge.js.map +1 -0
- package/dist/docs/types.d.ts +138 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +14 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/events/event-detector.d.ts +39 -0
- package/dist/events/event-detector.d.ts.map +1 -0
- package/dist/events/event-detector.js +223 -0
- package/dist/events/event-detector.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +35 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +8 -0
- package/dist/events/types.js.map +1 -0
- package/dist/exercises/index.d.ts +249 -0
- package/dist/exercises/index.d.ts.map +1 -0
- package/dist/exercises/index.js +181 -0
- package/dist/exercises/index.js.map +1 -0
- package/dist/health/aisles.d.ts +33 -0
- package/dist/health/aisles.d.ts.map +1 -0
- package/dist/health/aisles.js +417 -0
- package/dist/health/aisles.js.map +1 -0
- package/dist/health/cooking.d.ts +13 -0
- package/dist/health/cooking.d.ts.map +1 -0
- package/dist/health/cooking.js +19 -0
- package/dist/health/cooking.js.map +1 -0
- package/dist/health/duplicate.d.ts +47 -0
- package/dist/health/duplicate.d.ts.map +1 -0
- package/dist/health/duplicate.js +136 -0
- package/dist/health/duplicate.js.map +1 -0
- package/dist/health/index.d.ts +7 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +10 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/node-store.d.ts +30 -0
- package/dist/health/node-store.d.ts.map +1 -0
- package/dist/health/node-store.js +250 -0
- package/dist/health/node-store.js.map +1 -0
- package/dist/health/prep.d.ts +86 -0
- package/dist/health/prep.d.ts.map +1 -0
- package/dist/health/prep.js +152 -0
- package/dist/health/prep.js.map +1 -0
- package/dist/health/profile-fields.d.ts +46 -0
- package/dist/health/profile-fields.d.ts.map +1 -0
- package/dist/health/profile-fields.js +194 -0
- package/dist/health/profile-fields.js.map +1 -0
- package/dist/health/session-store.d.ts +30 -0
- package/dist/health/session-store.d.ts.map +1 -0
- package/dist/health/session-store.js +20 -0
- package/dist/health/session-store.js.map +1 -0
- package/dist/health/session-summary.d.ts +10 -0
- package/dist/health/session-summary.d.ts.map +1 -0
- package/dist/health/session-summary.js +106 -0
- package/dist/health/session-summary.js.map +1 -0
- package/dist/health/session-types.d.ts +74 -0
- package/dist/health/session-types.d.ts.map +1 -0
- package/dist/health/session-types.js +53 -0
- package/dist/health/session-types.js.map +1 -0
- package/dist/health/shopping-list.d.ts +226 -0
- package/dist/health/shopping-list.d.ts.map +1 -0
- package/dist/health/shopping-list.js +432 -0
- package/dist/health/shopping-list.js.map +1 -0
- package/dist/health/starters.d.ts +155 -0
- package/dist/health/starters.d.ts.map +1 -0
- package/dist/health/starters.js +270 -0
- package/dist/health/starters.js.map +1 -0
- package/dist/health/store.d.ts +59 -0
- package/dist/health/store.d.ts.map +1 -0
- package/dist/health/store.js +17 -0
- package/dist/health/store.js.map +1 -0
- package/dist/health/types.d.ts +213 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/health/types.js +11 -0
- package/dist/health/types.js.map +1 -0
- package/dist/history/conversation-title.d.ts +67 -0
- package/dist/history/conversation-title.d.ts.map +1 -0
- package/dist/history/conversation-title.js +184 -0
- package/dist/history/conversation-title.js.map +1 -0
- package/dist/history/history-manager.d.ts +50 -0
- package/dist/history/history-manager.d.ts.map +1 -0
- package/dist/history/history-manager.js +168 -0
- package/dist/history/history-manager.js.map +1 -0
- package/dist/history/storage.d.ts +41 -0
- package/dist/history/storage.d.ts.map +1 -0
- package/dist/history/storage.js +133 -0
- package/dist/history/storage.js.map +1 -0
- package/dist/i18n/index.d.ts +41 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +188 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/keep-english.d.ts +12 -0
- package/dist/i18n/keep-english.d.ts.map +1 -0
- package/dist/i18n/keep-english.js +351 -0
- package/dist/i18n/keep-english.js.map +1 -0
- package/dist/i18n/locales/ar.d.ts +4 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -0
- package/dist/i18n/locales/ar.js +4143 -0
- package/dist/i18n/locales/ar.js.map +1 -0
- package/dist/i18n/locales/de.d.ts +4 -0
- package/dist/i18n/locales/de.d.ts.map +1 -0
- package/dist/i18n/locales/de.js +4133 -0
- package/dist/i18n/locales/de.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +4068 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +4347 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +4 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +4128 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/fr.d.ts +4 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -0
- package/dist/i18n/locales/fr.js +4140 -0
- package/dist/i18n/locales/fr.js.map +1 -0
- package/dist/i18n/locales/hi.d.ts +4 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -0
- package/dist/i18n/locales/hi.js +4143 -0
- package/dist/i18n/locales/hi.js.map +1 -0
- package/dist/i18n/locales/id.d.ts +4 -0
- package/dist/i18n/locales/id.d.ts.map +1 -0
- package/dist/i18n/locales/id.js +4142 -0
- package/dist/i18n/locales/id.js.map +1 -0
- package/dist/i18n/locales/it.d.ts +4 -0
- package/dist/i18n/locales/it.d.ts.map +1 -0
- package/dist/i18n/locales/it.js +4143 -0
- package/dist/i18n/locales/it.js.map +1 -0
- package/dist/i18n/locales/ja.d.ts +4 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -0
- package/dist/i18n/locales/ja.js +4144 -0
- package/dist/i18n/locales/ja.js.map +1 -0
- package/dist/i18n/locales/ko.d.ts +4 -0
- package/dist/i18n/locales/ko.d.ts.map +1 -0
- package/dist/i18n/locales/ko.js +4143 -0
- package/dist/i18n/locales/ko.js.map +1 -0
- package/dist/i18n/locales/nl.d.ts +4 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -0
- package/dist/i18n/locales/nl.js +4143 -0
- package/dist/i18n/locales/nl.js.map +1 -0
- package/dist/i18n/locales/pl.d.ts +4 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -0
- package/dist/i18n/locales/pl.js +4133 -0
- package/dist/i18n/locales/pl.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +4 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +4141 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/ru.d.ts +4 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -0
- package/dist/i18n/locales/ru.js +4143 -0
- package/dist/i18n/locales/ru.js.map +1 -0
- package/dist/i18n/locales/th.d.ts +4 -0
- package/dist/i18n/locales/th.d.ts.map +1 -0
- package/dist/i18n/locales/th.js +4143 -0
- package/dist/i18n/locales/th.js.map +1 -0
- package/dist/i18n/locales/tr.d.ts +4 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -0
- package/dist/i18n/locales/tr.js +4143 -0
- package/dist/i18n/locales/tr.js.map +1 -0
- package/dist/i18n/locales/uk.d.ts +4 -0
- package/dist/i18n/locales/uk.d.ts.map +1 -0
- package/dist/i18n/locales/uk.js +4133 -0
- package/dist/i18n/locales/uk.js.map +1 -0
- package/dist/i18n/locales/vi.d.ts +4 -0
- package/dist/i18n/locales/vi.d.ts.map +1 -0
- package/dist/i18n/locales/vi.js +4143 -0
- package/dist/i18n/locales/vi.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +4 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +4133 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/i18n/locales/zh-TW.d.ts +4 -0
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
- package/dist/i18n/locales/zh-TW.js +4143 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -0
- package/dist/i18n/types.d.ts +5 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +46 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +142 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/project-indexer.d.ts +66 -0
- package/dist/indexer/project-indexer.d.ts.map +1 -0
- package/dist/indexer/project-indexer.js +574 -0
- package/dist/indexer/project-indexer.js.map +1 -0
- package/dist/indexer/symbol-indexer.d.ts +56 -0
- package/dist/indexer/symbol-indexer.d.ts.map +1 -0
- package/dist/indexer/symbol-indexer.js +579 -0
- package/dist/indexer/symbol-indexer.js.map +1 -0
- package/dist/journal/journal-manager.d.ts +143 -0
- package/dist/journal/journal-manager.d.ts.map +1 -0
- package/dist/journal/journal-manager.js +472 -0
- package/dist/journal/journal-manager.js.map +1 -0
- package/dist/journal/platform-sync.d.ts +17 -0
- package/dist/journal/platform-sync.d.ts.map +1 -0
- package/dist/journal/platform-sync.js +21 -0
- package/dist/journal/platform-sync.js.map +1 -0
- package/dist/journal/types.d.ts +78 -0
- package/dist/journal/types.d.ts.map +1 -0
- package/dist/journal/types.js +74 -0
- package/dist/journal/types.js.map +1 -0
- package/dist/knowledge/index.d.ts +2 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +2 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +9 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/learner-context.d.ts +11 -0
- package/dist/learning/learner-context.d.ts.map +1 -0
- package/dist/learning/learner-context.js +57 -0
- package/dist/learning/learner-context.js.map +1 -0
- package/dist/learning/library-fork.d.ts +33 -0
- package/dist/learning/library-fork.d.ts.map +1 -0
- package/dist/learning/library-fork.js +92 -0
- package/dist/learning/library-fork.js.map +1 -0
- package/dist/learning/progression-export.d.ts +4 -0
- package/dist/learning/progression-export.d.ts.map +1 -0
- package/dist/learning/progression-export.js +21 -0
- package/dist/learning/progression-export.js.map +1 -0
- package/dist/learning/progression-markdown.d.ts +14 -0
- package/dist/learning/progression-markdown.d.ts.map +1 -0
- package/dist/learning/progression-markdown.js +73 -0
- package/dist/learning/progression-markdown.js.map +1 -0
- package/dist/learning/progression.d.ts +65 -0
- package/dist/learning/progression.d.ts.map +1 -0
- package/dist/learning/progression.js +186 -0
- package/dist/learning/progression.js.map +1 -0
- package/dist/memory/ambient-capture.d.ts +26 -0
- package/dist/memory/ambient-capture.d.ts.map +1 -0
- package/dist/memory/ambient-capture.js +174 -0
- package/dist/memory/ambient-capture.js.map +1 -0
- package/dist/memory/auto-extract.d.ts +54 -0
- package/dist/memory/auto-extract.d.ts.map +1 -0
- package/dist/memory/auto-extract.js +499 -0
- package/dist/memory/auto-extract.js.map +1 -0
- package/dist/memory/config.d.ts +47 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/config.js +52 -0
- package/dist/memory/config.js.map +1 -0
- package/dist/memory/consolidation.d.ts +60 -0
- package/dist/memory/consolidation.d.ts.map +1 -0
- package/dist/memory/consolidation.js +311 -0
- package/dist/memory/consolidation.js.map +1 -0
- package/dist/memory/embedding-service.d.ts +50 -0
- package/dist/memory/embedding-service.d.ts.map +1 -0
- package/dist/memory/embedding-service.js +86 -0
- package/dist/memory/embedding-service.js.map +1 -0
- package/dist/memory/embedding-store.d.ts +31 -0
- package/dist/memory/embedding-store.d.ts.map +1 -0
- package/dist/memory/embedding-store.js +109 -0
- package/dist/memory/embedding-store.js.map +1 -0
- package/dist/memory/graph-engine.d.ts +145 -0
- package/dist/memory/graph-engine.d.ts.map +1 -0
- package/dist/memory/graph-engine.js +628 -0
- package/dist/memory/graph-engine.js.map +1 -0
- package/dist/memory/insights.d.ts +39 -0
- package/dist/memory/insights.d.ts.map +1 -0
- package/dist/memory/insights.js +138 -0
- package/dist/memory/insights.js.map +1 -0
- package/dist/memory/memory-agent.d.ts +93 -0
- package/dist/memory/memory-agent.d.ts.map +1 -0
- package/dist/memory/memory-agent.js +475 -0
- package/dist/memory/memory-agent.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +232 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +1633 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/migration-v3.d.ts +22 -0
- package/dist/memory/migration-v3.d.ts.map +1 -0
- package/dist/memory/migration-v3.js +193 -0
- package/dist/memory/migration-v3.js.map +1 -0
- package/dist/memory/mode-recall.d.ts +20 -0
- package/dist/memory/mode-recall.d.ts.map +1 -0
- package/dist/memory/mode-recall.js +104 -0
- package/dist/memory/mode-recall.js.map +1 -0
- package/dist/memory/patterns.d.ts +92 -0
- package/dist/memory/patterns.d.ts.map +1 -0
- package/dist/memory/patterns.js +389 -0
- package/dist/memory/patterns.js.map +1 -0
- package/dist/memory/platform-sync.d.ts +54 -0
- package/dist/memory/platform-sync.d.ts.map +1 -0
- package/dist/memory/platform-sync.js +176 -0
- package/dist/memory/platform-sync.js.map +1 -0
- package/dist/memory/procedural.d.ts +47 -0
- package/dist/memory/procedural.d.ts.map +1 -0
- package/dist/memory/procedural.js +182 -0
- package/dist/memory/procedural.js.map +1 -0
- package/dist/memory/project-brain.d.ts +27 -0
- package/dist/memory/project-brain.d.ts.map +1 -0
- package/dist/memory/project-brain.js +158 -0
- package/dist/memory/project-brain.js.map +1 -0
- package/dist/memory/self-improvement.d.ts +45 -0
- package/dist/memory/self-improvement.d.ts.map +1 -0
- package/dist/memory/self-improvement.js +178 -0
- package/dist/memory/self-improvement.js.map +1 -0
- package/dist/memory/tfidf.d.ts +71 -0
- package/dist/memory/tfidf.d.ts.map +1 -0
- package/dist/memory/tfidf.js +223 -0
- package/dist/memory/tfidf.js.map +1 -0
- package/dist/memory/training-export.d.ts +51 -0
- package/dist/memory/training-export.d.ts.map +1 -0
- package/dist/memory/training-export.js +122 -0
- package/dist/memory/training-export.js.map +1 -0
- package/dist/memory/types.d.ts +380 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +99 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/news/index.d.ts +163 -0
- package/dist/news/index.d.ts.map +1 -0
- package/dist/news/index.js +184 -0
- package/dist/news/index.js.map +1 -0
- package/dist/papers/arxiv-client.d.ts +21 -0
- package/dist/papers/arxiv-client.d.ts.map +1 -0
- package/dist/papers/arxiv-client.js +130 -0
- package/dist/papers/arxiv-client.js.map +1 -0
- package/dist/papers/crossref-client.d.ts +3 -0
- package/dist/papers/crossref-client.d.ts.map +1 -0
- package/dist/papers/crossref-client.js +96 -0
- package/dist/papers/crossref-client.js.map +1 -0
- package/dist/papers/discipline.d.ts +19 -0
- package/dist/papers/discipline.d.ts.map +1 -0
- package/dist/papers/discipline.js +96 -0
- package/dist/papers/discipline.js.map +1 -0
- package/dist/papers/index.d.ts +10 -0
- package/dist/papers/index.d.ts.map +1 -0
- package/dist/papers/index.js +7 -0
- package/dist/papers/index.js.map +1 -0
- package/dist/papers/openalex-client.d.ts +13 -0
- package/dist/papers/openalex-client.d.ts.map +1 -0
- package/dist/papers/openalex-client.js +206 -0
- package/dist/papers/openalex-client.js.map +1 -0
- package/dist/papers/paper-fetcher.d.ts +37 -0
- package/dist/papers/paper-fetcher.d.ts.map +1 -0
- package/dist/papers/paper-fetcher.js +75 -0
- package/dist/papers/paper-fetcher.js.map +1 -0
- package/dist/papers/types.d.ts +80 -0
- package/dist/papers/types.d.ts.map +1 -0
- package/dist/papers/types.js +25 -0
- package/dist/papers/types.js.map +1 -0
- package/dist/personas/conductor.d.ts +184 -0
- package/dist/personas/conductor.d.ts.map +1 -0
- package/dist/personas/conductor.js +871 -0
- package/dist/personas/conductor.js.map +1 -0
- package/dist/personas/definitions.d.ts +48 -0
- package/dist/personas/definitions.d.ts.map +1 -0
- package/dist/personas/definitions.js +828 -0
- package/dist/personas/definitions.js.map +1 -0
- package/dist/personas/index.d.ts +4 -0
- package/dist/personas/index.d.ts.map +1 -0
- package/dist/personas/index.js +3 -0
- package/dist/personas/index.js.map +1 -0
- package/dist/personas/types.d.ts +148 -0
- package/dist/personas/types.d.ts.map +1 -0
- package/dist/personas/types.js +5 -0
- package/dist/personas/types.js.map +1 -0
- package/dist/personas/verification-matrix.d.ts +44 -0
- package/dist/personas/verification-matrix.d.ts.map +1 -0
- package/dist/personas/verification-matrix.js +232 -0
- package/dist/personas/verification-matrix.js.map +1 -0
- package/dist/portability/bundle.d.ts +80 -0
- package/dist/portability/bundle.d.ts.map +1 -0
- package/dist/portability/bundle.js +155 -0
- package/dist/portability/bundle.js.map +1 -0
- package/dist/portability/crypto.d.ts +42 -0
- package/dist/portability/crypto.d.ts.map +1 -0
- package/dist/portability/crypto.js +89 -0
- package/dist/portability/crypto.js.map +1 -0
- package/dist/portability/data-types.d.ts +54 -0
- package/dist/portability/data-types.d.ts.map +1 -0
- package/dist/portability/data-types.js +281 -0
- package/dist/portability/data-types.js.map +1 -0
- package/dist/portability/index.d.ts +35 -0
- package/dist/portability/index.d.ts.map +1 -0
- package/dist/portability/index.js +41 -0
- package/dist/portability/index.js.map +1 -0
- package/dist/providers/base-provider.d.ts +65 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +305 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/catalog.d.ts +25 -0
- package/dist/providers/catalog.d.ts.map +1 -0
- package/dist/providers/catalog.js +53 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/deepseek/index.d.ts +9 -0
- package/dist/providers/deepseek/index.d.ts.map +1 -0
- package/dist/providers/deepseek/index.js +19 -0
- package/dist/providers/deepseek/index.js.map +1 -0
- package/dist/providers/deepseek/models.d.ts +3 -0
- package/dist/providers/deepseek/models.d.ts.map +1 -0
- package/dist/providers/deepseek/models.js +56 -0
- package/dist/providers/deepseek/models.js.map +1 -0
- package/dist/providers/generic/index.d.ts +25 -0
- package/dist/providers/generic/index.d.ts.map +1 -0
- package/dist/providers/generic/index.js +51 -0
- package/dist/providers/generic/index.js.map +1 -0
- package/dist/providers/generic/models.d.ts +3 -0
- package/dist/providers/generic/models.d.ts.map +1 -0
- package/dist/providers/generic/models.js +13 -0
- package/dist/providers/generic/models.js.map +1 -0
- package/dist/providers/health-tracker.d.ts +44 -0
- package/dist/providers/health-tracker.d.ts.map +1 -0
- package/dist/providers/health-tracker.js +110 -0
- package/dist/providers/health-tracker.js.map +1 -0
- package/dist/providers/kimi/index.d.ts +9 -0
- package/dist/providers/kimi/index.d.ts.map +1 -0
- package/dist/providers/kimi/index.js +13 -0
- package/dist/providers/kimi/index.js.map +1 -0
- package/dist/providers/kimi/models.d.ts +3 -0
- package/dist/providers/kimi/models.d.ts.map +1 -0
- package/dist/providers/kimi/models.js +60 -0
- package/dist/providers/kimi/models.js.map +1 -0
- package/dist/providers/minimax/index.d.ts +9 -0
- package/dist/providers/minimax/index.d.ts.map +1 -0
- package/dist/providers/minimax/index.js +13 -0
- package/dist/providers/minimax/index.js.map +1 -0
- package/dist/providers/minimax/models.d.ts +3 -0
- package/dist/providers/minimax/models.d.ts.map +1 -0
- package/dist/providers/minimax/models.js +65 -0
- package/dist/providers/minimax/models.js.map +1 -0
- package/dist/providers/mistral/index.d.ts +11 -0
- package/dist/providers/mistral/index.d.ts.map +1 -0
- package/dist/providers/mistral/index.js +24 -0
- package/dist/providers/mistral/index.js.map +1 -0
- package/dist/providers/mistral/models.d.ts +3 -0
- package/dist/providers/mistral/models.d.ts.map +1 -0
- package/dist/providers/mistral/models.js +65 -0
- package/dist/providers/mistral/models.js.map +1 -0
- package/dist/providers/nvidia/index.d.ts +16 -0
- package/dist/providers/nvidia/index.d.ts.map +1 -0
- package/dist/providers/nvidia/index.js +20 -0
- package/dist/providers/nvidia/index.js.map +1 -0
- package/dist/providers/nvidia/models.d.ts +3 -0
- package/dist/providers/nvidia/models.d.ts.map +1 -0
- package/dist/providers/nvidia/models.js +56 -0
- package/dist/providers/nvidia/models.js.map +1 -0
- package/dist/providers/platform/index.d.ts +10 -0
- package/dist/providers/platform/index.d.ts.map +1 -0
- package/dist/providers/platform/index.js +16 -0
- package/dist/providers/platform/index.js.map +1 -0
- package/dist/providers/platform/models.d.ts +3 -0
- package/dist/providers/platform/models.d.ts.map +1 -0
- package/dist/providers/platform/models.js +233 -0
- package/dist/providers/platform/models.js.map +1 -0
- package/dist/providers/provider-registry.d.ts +44 -0
- package/dist/providers/provider-registry.d.ts.map +1 -0
- package/dist/providers/provider-registry.js +197 -0
- package/dist/providers/provider-registry.js.map +1 -0
- package/dist/providers/qwen/index.d.ts +9 -0
- package/dist/providers/qwen/index.d.ts.map +1 -0
- package/dist/providers/qwen/index.js +13 -0
- package/dist/providers/qwen/index.js.map +1 -0
- package/dist/providers/qwen/models.d.ts +3 -0
- package/dist/providers/qwen/models.d.ts.map +1 -0
- package/dist/providers/qwen/models.js +164 -0
- package/dist/providers/qwen/models.js.map +1 -0
- package/dist/providers/request-shaping/index.d.ts +29 -0
- package/dist/providers/request-shaping/index.d.ts.map +1 -0
- package/dist/providers/request-shaping/index.js +31 -0
- package/dist/providers/request-shaping/index.js.map +1 -0
- package/dist/providers/request-shaping/messages.d.ts +61 -0
- package/dist/providers/request-shaping/messages.d.ts.map +1 -0
- package/dist/providers/request-shaping/messages.js +114 -0
- package/dist/providers/request-shaping/messages.js.map +1 -0
- package/dist/providers/request-shaping/model-ids.d.ts +44 -0
- package/dist/providers/request-shaping/model-ids.d.ts.map +1 -0
- package/dist/providers/request-shaping/model-ids.js +96 -0
- package/dist/providers/request-shaping/model-ids.js.map +1 -0
- package/dist/providers/request-shaping/params.d.ts +38 -0
- package/dist/providers/request-shaping/params.d.ts.map +1 -0
- package/dist/providers/request-shaping/params.js +79 -0
- package/dist/providers/request-shaping/params.js.map +1 -0
- package/dist/providers/resilient-provider.d.ts +44 -0
- package/dist/providers/resilient-provider.d.ts.map +1 -0
- package/dist/providers/resilient-provider.js +141 -0
- package/dist/providers/resilient-provider.js.map +1 -0
- package/dist/providers/tencent/index.d.ts +19 -0
- package/dist/providers/tencent/index.d.ts.map +1 -0
- package/dist/providers/tencent/index.js +50 -0
- package/dist/providers/tencent/index.js.map +1 -0
- package/dist/providers/tencent/models.d.ts +3 -0
- package/dist/providers/tencent/models.d.ts.map +1 -0
- package/dist/providers/tencent/models.js +29 -0
- package/dist/providers/tencent/models.js.map +1 -0
- package/dist/providers/types.d.ts +98 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/xiaomi/index.d.ts +9 -0
- package/dist/providers/xiaomi/index.d.ts.map +1 -0
- package/dist/providers/xiaomi/index.js +16 -0
- package/dist/providers/xiaomi/index.js.map +1 -0
- package/dist/providers/xiaomi/models.d.ts +3 -0
- package/dist/providers/xiaomi/models.d.ts.map +1 -0
- package/dist/providers/xiaomi/models.js +37 -0
- package/dist/providers/xiaomi/models.js.map +1 -0
- package/dist/providers/zhipu/index.d.ts +11 -0
- package/dist/providers/zhipu/index.d.ts.map +1 -0
- package/dist/providers/zhipu/index.js +44 -0
- package/dist/providers/zhipu/index.js.map +1 -0
- package/dist/providers/zhipu/models.d.ts +3 -0
- package/dist/providers/zhipu/models.d.ts.map +1 -0
- package/dist/providers/zhipu/models.js +37 -0
- package/dist/providers/zhipu/models.js.map +1 -0
- package/dist/recipes/index.d.ts +215 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +232 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/remote/client.d.ts +67 -0
- package/dist/remote/client.d.ts.map +1 -0
- package/dist/remote/client.js +202 -0
- package/dist/remote/client.js.map +1 -0
- package/dist/remote/index.d.ts +9 -0
- package/dist/remote/index.d.ts.map +1 -0
- package/dist/remote/index.js +7 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/schema.d.ts +152 -0
- package/dist/remote/schema.d.ts.map +1 -0
- package/dist/remote/schema.js +26 -0
- package/dist/remote/schema.js.map +1 -0
- package/dist/security/index.d.ts +6 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +5 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/scanner.d.ts +67 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +422 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/social/day-plan.d.ts +38 -0
- package/dist/social/day-plan.d.ts.map +1 -0
- package/dist/social/day-plan.js +16 -0
- package/dist/social/day-plan.js.map +1 -0
- package/dist/social/index.d.ts +290 -0
- package/dist/social/index.d.ts.map +1 -0
- package/dist/social/index.js +96 -0
- package/dist/social/index.js.map +1 -0
- package/dist/tasks/platform-sync.d.ts +22 -0
- package/dist/tasks/platform-sync.d.ts.map +1 -0
- package/dist/tasks/platform-sync.js +132 -0
- package/dist/tasks/platform-sync.js.map +1 -0
- package/dist/tasks/task-manager.d.ts +164 -0
- package/dist/tasks/task-manager.d.ts.map +1 -0
- package/dist/tasks/task-manager.js +643 -0
- package/dist/tasks/task-manager.js.map +1 -0
- package/dist/tasks/types.d.ts +105 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +23 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/tools/analyze-architecture.d.ts +17 -0
- package/dist/tools/analyze-architecture.d.ts.map +1 -0
- package/dist/tools/analyze-architecture.js +316 -0
- package/dist/tools/analyze-architecture.js.map +1 -0
- package/dist/tools/apply-plan.d.ts +12 -0
- package/dist/tools/apply-plan.d.ts.map +1 -0
- package/dist/tools/apply-plan.js +119 -0
- package/dist/tools/apply-plan.js.map +1 -0
- package/dist/tools/ask-user.d.ts +11 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +32 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/audit-dependencies.d.ts +13 -0
- package/dist/tools/audit-dependencies.d.ts.map +1 -0
- package/dist/tools/audit-dependencies.js +156 -0
- package/dist/tools/audit-dependencies.js.map +1 -0
- package/dist/tools/authoring/doc-model.d.ts +128 -0
- package/dist/tools/authoring/doc-model.d.ts.map +1 -0
- package/dist/tools/authoring/doc-model.js +82 -0
- package/dist/tools/authoring/doc-model.js.map +1 -0
- package/dist/tools/authoring/frontmatter.d.ts +51 -0
- package/dist/tools/authoring/frontmatter.d.ts.map +1 -0
- package/dist/tools/authoring/frontmatter.js +203 -0
- package/dist/tools/authoring/frontmatter.js.map +1 -0
- package/dist/tools/authoring/image-size.d.ts +17 -0
- package/dist/tools/authoring/image-size.d.ts.map +1 -0
- package/dist/tools/authoring/image-size.js +47 -0
- package/dist/tools/authoring/image-size.js.map +1 -0
- package/dist/tools/authoring/index.d.ts +34 -0
- package/dist/tools/authoring/index.d.ts.map +1 -0
- package/dist/tools/authoring/index.js +44 -0
- package/dist/tools/authoring/index.js.map +1 -0
- package/dist/tools/authoring/md-parse.d.ts +18 -0
- package/dist/tools/authoring/md-parse.d.ts.map +1 -0
- package/dist/tools/authoring/md-parse.js +262 -0
- package/dist/tools/authoring/md-parse.js.map +1 -0
- package/dist/tools/authoring/render-docx.d.ts +18 -0
- package/dist/tools/authoring/render-docx.d.ts.map +1 -0
- package/dist/tools/authoring/render-docx.js +272 -0
- package/dist/tools/authoring/render-docx.js.map +1 -0
- package/dist/tools/authoring/render-md.d.ts +13 -0
- package/dist/tools/authoring/render-md.d.ts.map +1 -0
- package/dist/tools/authoring/render-md.js +139 -0
- package/dist/tools/authoring/render-md.js.map +1 -0
- package/dist/tools/authoring/render-pdf.d.ts +16 -0
- package/dist/tools/authoring/render-pdf.d.ts.map +1 -0
- package/dist/tools/authoring/render-pdf.js +298 -0
- package/dist/tools/authoring/render-pdf.js.map +1 -0
- package/dist/tools/authoring/sections.d.ts +35 -0
- package/dist/tools/authoring/sections.d.ts.map +1 -0
- package/dist/tools/authoring/sections.js +81 -0
- package/dist/tools/authoring/sections.js.map +1 -0
- package/dist/tools/authoring/templates/builtins.d.ts +11 -0
- package/dist/tools/authoring/templates/builtins.d.ts.map +1 -0
- package/dist/tools/authoring/templates/builtins.js +478 -0
- package/dist/tools/authoring/templates/builtins.js.map +1 -0
- package/dist/tools/authoring/templates/index.d.ts +15 -0
- package/dist/tools/authoring/templates/index.d.ts.map +1 -0
- package/dist/tools/authoring/templates/index.js +25 -0
- package/dist/tools/authoring/templates/index.js.map +1 -0
- package/dist/tools/authoring/templates/store.d.ts +15 -0
- package/dist/tools/authoring/templates/store.d.ts.map +1 -0
- package/dist/tools/authoring/templates/store.js +63 -0
- package/dist/tools/authoring/templates/store.js.map +1 -0
- package/dist/tools/authoring/templates/template-model.d.ts +44 -0
- package/dist/tools/authoring/templates/template-model.d.ts.map +1 -0
- package/dist/tools/authoring/templates/template-model.js +39 -0
- package/dist/tools/authoring/templates/template-model.js.map +1 -0
- package/dist/tools/bash.d.ts +34 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +353 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/benchmark.d.ts +12 -0
- package/dist/tools/benchmark.d.ts.map +1 -0
- package/dist/tools/benchmark.js +147 -0
- package/dist/tools/benchmark.js.map +1 -0
- package/dist/tools/browse-library.d.ts +12 -0
- package/dist/tools/browse-library.d.ts.map +1 -0
- package/dist/tools/browse-library.js +188 -0
- package/dist/tools/browse-library.js.map +1 -0
- package/dist/tools/browser-click.d.ts +12 -0
- package/dist/tools/browser-click.d.ts.map +1 -0
- package/dist/tools/browser-click.js +58 -0
- package/dist/tools/browser-click.js.map +1 -0
- package/dist/tools/browser-close.d.ts +11 -0
- package/dist/tools/browser-close.d.ts.map +1 -0
- package/dist/tools/browser-close.js +27 -0
- package/dist/tools/browser-close.js.map +1 -0
- package/dist/tools/browser-navigate.d.ts +12 -0
- package/dist/tools/browser-navigate.d.ts.map +1 -0
- package/dist/tools/browser-navigate.js +66 -0
- package/dist/tools/browser-navigate.js.map +1 -0
- package/dist/tools/browser-snapshot.d.ts +11 -0
- package/dist/tools/browser-snapshot.d.ts.map +1 -0
- package/dist/tools/browser-snapshot.js +56 -0
- package/dist/tools/browser-snapshot.js.map +1 -0
- package/dist/tools/browser-type.d.ts +12 -0
- package/dist/tools/browser-type.d.ts.map +1 -0
- package/dist/tools/browser-type.js +68 -0
- package/dist/tools/browser-type.js.map +1 -0
- package/dist/tools/browser.d.ts +29 -0
- package/dist/tools/browser.d.ts.map +1 -0
- package/dist/tools/browser.js +307 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/conversation-recall.d.ts +43 -0
- package/dist/tools/conversation-recall.d.ts.map +1 -0
- package/dist/tools/conversation-recall.js +177 -0
- package/dist/tools/conversation-recall.js.map +1 -0
- package/dist/tools/creative-asset-sync.d.ts +33 -0
- package/dist/tools/creative-asset-sync.d.ts.map +1 -0
- package/dist/tools/creative-asset-sync.js +39 -0
- package/dist/tools/creative-asset-sync.js.map +1 -0
- package/dist/tools/curator.d.ts +34 -0
- package/dist/tools/curator.d.ts.map +1 -0
- package/dist/tools/curator.js +191 -0
- package/dist/tools/curator.js.map +1 -0
- package/dist/tools/database-query.d.ts +11 -0
- package/dist/tools/database-query.d.ts.map +1 -0
- package/dist/tools/database-query.js +228 -0
- package/dist/tools/database-query.js.map +1 -0
- package/dist/tools/day-plan.d.ts +27 -0
- package/dist/tools/day-plan.d.ts.map +1 -0
- package/dist/tools/day-plan.js +207 -0
- package/dist/tools/day-plan.js.map +1 -0
- package/dist/tools/debug-logs.d.ts +13 -0
- package/dist/tools/debug-logs.d.ts.map +1 -0
- package/dist/tools/debug-logs.js +141 -0
- package/dist/tools/debug-logs.js.map +1 -0
- package/dist/tools/deploy-manifest.d.ts +37 -0
- package/dist/tools/deploy-manifest.d.ts.map +1 -0
- package/dist/tools/deploy-manifest.js +71 -0
- package/dist/tools/deploy-manifest.js.map +1 -0
- package/dist/tools/design-studio-tools.d.ts +83 -0
- package/dist/tools/design-studio-tools.d.ts.map +1 -0
- package/dist/tools/design-studio-tools.js +761 -0
- package/dist/tools/design-studio-tools.js.map +1 -0
- package/dist/tools/desktop-click-by-name.d.ts +12 -0
- package/dist/tools/desktop-click-by-name.d.ts.map +1 -0
- package/dist/tools/desktop-click-by-name.js +64 -0
- package/dist/tools/desktop-click-by-name.js.map +1 -0
- package/dist/tools/desktop-focus-window.d.ts +12 -0
- package/dist/tools/desktop-focus-window.d.ts.map +1 -0
- package/dist/tools/desktop-focus-window.js +59 -0
- package/dist/tools/desktop-focus-window.js.map +1 -0
- package/dist/tools/desktop-key-press.d.ts +12 -0
- package/dist/tools/desktop-key-press.d.ts.map +1 -0
- package/dist/tools/desktop-key-press.js +73 -0
- package/dist/tools/desktop-key-press.js.map +1 -0
- package/dist/tools/desktop-launch-app.d.ts +12 -0
- package/dist/tools/desktop-launch-app.d.ts.map +1 -0
- package/dist/tools/desktop-launch-app.js +58 -0
- package/dist/tools/desktop-launch-app.js.map +1 -0
- package/dist/tools/desktop-list-elements.d.ts +11 -0
- package/dist/tools/desktop-list-elements.d.ts.map +1 -0
- package/dist/tools/desktop-list-elements.js +65 -0
- package/dist/tools/desktop-list-elements.js.map +1 -0
- package/dist/tools/desktop-plan-approve.d.ts +30 -0
- package/dist/tools/desktop-plan-approve.d.ts.map +1 -0
- package/dist/tools/desktop-plan-approve.js +135 -0
- package/dist/tools/desktop-plan-approve.js.map +1 -0
- package/dist/tools/desktop-providers.d.ts +144 -0
- package/dist/tools/desktop-providers.d.ts.map +1 -0
- package/dist/tools/desktop-providers.js +12 -0
- package/dist/tools/desktop-providers.js.map +1 -0
- package/dist/tools/desktop-safety-gate.d.ts +84 -0
- package/dist/tools/desktop-safety-gate.d.ts.map +1 -0
- package/dist/tools/desktop-safety-gate.js +171 -0
- package/dist/tools/desktop-safety-gate.js.map +1 -0
- package/dist/tools/desktop-tools.d.ts +22 -0
- package/dist/tools/desktop-tools.d.ts.map +1 -0
- package/dist/tools/desktop-tools.js +71 -0
- package/dist/tools/desktop-tools.js.map +1 -0
- package/dist/tools/desktop-type.d.ts +12 -0
- package/dist/tools/desktop-type.d.ts.map +1 -0
- package/dist/tools/desktop-type.js +63 -0
- package/dist/tools/desktop-type.js.map +1 -0
- package/dist/tools/detect-language.d.ts +11 -0
- package/dist/tools/detect-language.d.ts.map +1 -0
- package/dist/tools/detect-language.js +235 -0
- package/dist/tools/detect-language.js.map +1 -0
- package/dist/tools/discover-news.d.ts +11 -0
- package/dist/tools/discover-news.d.ts.map +1 -0
- package/dist/tools/discover-news.js +261 -0
- package/dist/tools/discover-news.js.map +1 -0
- package/dist/tools/doc-generate.d.ts +17 -0
- package/dist/tools/doc-generate.d.ts.map +1 -0
- package/dist/tools/doc-generate.js +222 -0
- package/dist/tools/doc-generate.js.map +1 -0
- package/dist/tools/docs-lookup.d.ts +38 -0
- package/dist/tools/docs-lookup.d.ts.map +1 -0
- package/dist/tools/docs-lookup.js +174 -0
- package/dist/tools/docs-lookup.js.map +1 -0
- package/dist/tools/document-author.d.ts +40 -0
- package/dist/tools/document-author.d.ts.map +1 -0
- package/dist/tools/document-author.js +465 -0
- package/dist/tools/document-author.js.map +1 -0
- package/dist/tools/document-manage.d.ts +43 -0
- package/dist/tools/document-manage.d.ts.map +1 -0
- package/dist/tools/document-manage.js +665 -0
- package/dist/tools/document-manage.js.map +1 -0
- package/dist/tools/document-styling.d.ts +132 -0
- package/dist/tools/document-styling.d.ts.map +1 -0
- package/dist/tools/document-styling.js +360 -0
- package/dist/tools/document-styling.js.map +1 -0
- package/dist/tools/document-templates.d.ts +32 -0
- package/dist/tools/document-templates.d.ts.map +1 -0
- package/dist/tools/document-templates.js +95 -0
- package/dist/tools/document-templates.js.map +1 -0
- package/dist/tools/email-draft.d.ts +20 -0
- package/dist/tools/email-draft.d.ts.map +1 -0
- package/dist/tools/email-draft.js +191 -0
- package/dist/tools/email-draft.js.map +1 -0
- package/dist/tools/env-write.d.ts +32 -0
- package/dist/tools/env-write.d.ts.map +1 -0
- package/dist/tools/env-write.js +145 -0
- package/dist/tools/env-write.js.map +1 -0
- package/dist/tools/error-guidance.d.ts +38 -0
- package/dist/tools/error-guidance.d.ts.map +1 -0
- package/dist/tools/error-guidance.js +261 -0
- package/dist/tools/error-guidance.js.map +1 -0
- package/dist/tools/exercise-repair.d.ts +89 -0
- package/dist/tools/exercise-repair.d.ts.map +1 -0
- package/dist/tools/exercise-repair.js +350 -0
- package/dist/tools/exercise-repair.js.map +1 -0
- package/dist/tools/fact-check.d.ts +24 -0
- package/dist/tools/fact-check.d.ts.map +1 -0
- package/dist/tools/fact-check.js +78 -0
- package/dist/tools/fact-check.js.map +1 -0
- package/dist/tools/file-edit.d.ts +11 -0
- package/dist/tools/file-edit.d.ts.map +1 -0
- package/dist/tools/file-edit.js +166 -0
- package/dist/tools/file-edit.js.map +1 -0
- package/dist/tools/file-read.d.ts +12 -0
- package/dist/tools/file-read.d.ts.map +1 -0
- package/dist/tools/file-read.js +98 -0
- package/dist/tools/file-read.js.map +1 -0
- package/dist/tools/file-write.d.ts +13 -0
- package/dist/tools/file-write.d.ts.map +1 -0
- package/dist/tools/file-write.js +163 -0
- package/dist/tools/file-write.js.map +1 -0
- package/dist/tools/find-symbol.d.ts +13 -0
- package/dist/tools/find-symbol.d.ts.map +1 -0
- package/dist/tools/find-symbol.js +144 -0
- package/dist/tools/find-symbol.js.map +1 -0
- package/dist/tools/generate-image.d.ts +19 -0
- package/dist/tools/generate-image.d.ts.map +1 -0
- package/dist/tools/generate-image.js +438 -0
- package/dist/tools/generate-image.js.map +1 -0
- package/dist/tools/generate-video.d.ts +21 -0
- package/dist/tools/generate-video.d.ts.map +1 -0
- package/dist/tools/generate-video.js +197 -0
- package/dist/tools/generate-video.js.map +1 -0
- package/dist/tools/generate-voice.d.ts +13 -0
- package/dist/tools/generate-voice.d.ts.map +1 -0
- package/dist/tools/generate-voice.js +156 -0
- package/dist/tools/generate-voice.js.map +1 -0
- package/dist/tools/generation-manager.d.ts +75 -0
- package/dist/tools/generation-manager.d.ts.map +1 -0
- package/dist/tools/generation-manager.js +150 -0
- package/dist/tools/generation-manager.js.map +1 -0
- package/dist/tools/get-datetime.d.ts +11 -0
- package/dist/tools/get-datetime.d.ts.map +1 -0
- package/dist/tools/get-datetime.js +59 -0
- package/dist/tools/get-datetime.js.map +1 -0
- package/dist/tools/git-commit.d.ts +13 -0
- package/dist/tools/git-commit.d.ts.map +1 -0
- package/dist/tools/git-commit.js +136 -0
- package/dist/tools/git-commit.js.map +1 -0
- package/dist/tools/git-create-pr.d.ts +13 -0
- package/dist/tools/git-create-pr.d.ts.map +1 -0
- package/dist/tools/git-create-pr.js +134 -0
- package/dist/tools/git-create-pr.js.map +1 -0
- package/dist/tools/git-diff.d.ts +12 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +134 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git.d.ts +11 -0
- package/dist/tools/git.d.ts.map +1 -0
- package/dist/tools/git.js +89 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/glob.d.ts +11 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +64 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +11 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +131 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/health-catalogue-search.d.ts +11 -0
- package/dist/tools/health-catalogue-search.d.ts.map +1 -0
- package/dist/tools/health-catalogue-search.js +179 -0
- package/dist/tools/health-catalogue-search.js.map +1 -0
- package/dist/tools/health-plan-create.d.ts +24 -0
- package/dist/tools/health-plan-create.d.ts.map +1 -0
- package/dist/tools/health-plan-create.js +325 -0
- package/dist/tools/health-plan-create.js.map +1 -0
- package/dist/tools/health-plan-delete.d.ts +11 -0
- package/dist/tools/health-plan-delete.d.ts.map +1 -0
- package/dist/tools/health-plan-delete.js +97 -0
- package/dist/tools/health-plan-delete.js.map +1 -0
- package/dist/tools/health-plan-list.d.ts +11 -0
- package/dist/tools/health-plan-list.d.ts.map +1 -0
- package/dist/tools/health-plan-list.js +123 -0
- package/dist/tools/health-plan-list.js.map +1 -0
- package/dist/tools/health-plan-update-day.d.ts +18 -0
- package/dist/tools/health-plan-update-day.d.ts.map +1 -0
- package/dist/tools/health-plan-update-day.js +134 -0
- package/dist/tools/health-plan-update-day.js.map +1 -0
- package/dist/tools/health-plan-update.d.ts +11 -0
- package/dist/tools/health-plan-update.d.ts.map +1 -0
- package/dist/tools/health-plan-update.js +103 -0
- package/dist/tools/health-plan-update.js.map +1 -0
- package/dist/tools/health-profile-ask.d.ts +21 -0
- package/dist/tools/health-profile-ask.d.ts.map +1 -0
- package/dist/tools/health-profile-ask.js +50 -0
- package/dist/tools/health-profile-ask.js.map +1 -0
- package/dist/tools/http-request.d.ts +12 -0
- package/dist/tools/http-request.d.ts.map +1 -0
- package/dist/tools/http-request.js +329 -0
- package/dist/tools/http-request.js.map +1 -0
- package/dist/tools/journal.d.ts +17 -0
- package/dist/tools/journal.d.ts.map +1 -0
- package/dist/tools/journal.js +159 -0
- package/dist/tools/journal.js.map +1 -0
- package/dist/tools/learning.d.ts +154 -0
- package/dist/tools/learning.d.ts.map +1 -0
- package/dist/tools/learning.js +1344 -0
- package/dist/tools/learning.js.map +1 -0
- package/dist/tools/list-directory.d.ts +11 -0
- package/dist/tools/list-directory.d.ts.map +1 -0
- package/dist/tools/list-directory.js +95 -0
- package/dist/tools/list-directory.js.map +1 -0
- package/dist/tools/memory-delete.d.ts +11 -0
- package/dist/tools/memory-delete.d.ts.map +1 -0
- package/dist/tools/memory-delete.js +54 -0
- package/dist/tools/memory-delete.js.map +1 -0
- package/dist/tools/memory-recall.d.ts +11 -0
- package/dist/tools/memory-recall.d.ts.map +1 -0
- package/dist/tools/memory-recall.js +101 -0
- package/dist/tools/memory-recall.js.map +1 -0
- package/dist/tools/memory-save.d.ts +11 -0
- package/dist/tools/memory-save.d.ts.map +1 -0
- package/dist/tools/memory-save.js +110 -0
- package/dist/tools/memory-save.js.map +1 -0
- package/dist/tools/memory-update.d.ts +11 -0
- package/dist/tools/memory-update.d.ts.map +1 -0
- package/dist/tools/memory-update.js +88 -0
- package/dist/tools/memory-update.js.map +1 -0
- package/dist/tools/news.d.ts +11 -0
- package/dist/tools/news.d.ts.map +1 -0
- package/dist/tools/news.js +137 -0
- package/dist/tools/news.js.map +1 -0
- package/dist/tools/open-design-studio.d.ts +20 -0
- package/dist/tools/open-design-studio.d.ts.map +1 -0
- package/dist/tools/open-design-studio.js +45 -0
- package/dist/tools/open-design-studio.js.map +1 -0
- package/dist/tools/open-health-room.d.ts +19 -0
- package/dist/tools/open-health-room.d.ts.map +1 -0
- package/dist/tools/open-health-room.js +44 -0
- package/dist/tools/open-health-room.js.map +1 -0
- package/dist/tools/open-learning-room.d.ts +20 -0
- package/dist/tools/open-learning-room.d.ts.map +1 -0
- package/dist/tools/open-learning-room.js +44 -0
- package/dist/tools/open-learning-room.js.map +1 -0
- package/dist/tools/paper-fetch.d.ts +11 -0
- package/dist/tools/paper-fetch.d.ts.map +1 -0
- package/dist/tools/paper-fetch.js +236 -0
- package/dist/tools/paper-fetch.js.map +1 -0
- package/dist/tools/post-performance.d.ts +17 -0
- package/dist/tools/post-performance.d.ts.map +1 -0
- package/dist/tools/post-performance.js +58 -0
- package/dist/tools/post-performance.js.map +1 -0
- package/dist/tools/present-plan.d.ts +34 -0
- package/dist/tools/present-plan.d.ts.map +1 -0
- package/dist/tools/present-plan.js +117 -0
- package/dist/tools/present-plan.js.map +1 -0
- package/dist/tools/project-index.d.ts +11 -0
- package/dist/tools/project-index.d.ts.map +1 -0
- package/dist/tools/project-index.js +88 -0
- package/dist/tools/project-index.js.map +1 -0
- package/dist/tools/propose-hooks.d.ts +17 -0
- package/dist/tools/propose-hooks.d.ts.map +1 -0
- package/dist/tools/propose-hooks.js +71 -0
- package/dist/tools/propose-hooks.js.map +1 -0
- package/dist/tools/propose-tool.d.ts +11 -0
- package/dist/tools/propose-tool.d.ts.map +1 -0
- package/dist/tools/propose-tool.js +155 -0
- package/dist/tools/propose-tool.js.map +1 -0
- package/dist/tools/recipe-repair.d.ts +116 -0
- package/dist/tools/recipe-repair.d.ts.map +1 -0
- package/dist/tools/recipe-repair.js +404 -0
- package/dist/tools/recipe-repair.js.map +1 -0
- package/dist/tools/record-machine-rule.d.ts +24 -0
- package/dist/tools/record-machine-rule.d.ts.map +1 -0
- package/dist/tools/record-machine-rule.js +60 -0
- package/dist/tools/record-machine-rule.js.map +1 -0
- package/dist/tools/release-notes.d.ts +11 -0
- package/dist/tools/release-notes.d.ts.map +1 -0
- package/dist/tools/release-notes.js +59 -0
- package/dist/tools/release-notes.js.map +1 -0
- package/dist/tools/remove-background.d.ts +15 -0
- package/dist/tools/remove-background.d.ts.map +1 -0
- package/dist/tools/remove-background.js +117 -0
- package/dist/tools/remove-background.js.map +1 -0
- package/dist/tools/report-generate.d.ts +30 -0
- package/dist/tools/report-generate.d.ts.map +1 -0
- package/dist/tools/report-generate.js +325 -0
- package/dist/tools/report-generate.js.map +1 -0
- package/dist/tools/research-post.d.ts +20 -0
- package/dist/tools/research-post.d.ts.map +1 -0
- package/dist/tools/research-post.js +87 -0
- package/dist/tools/research-post.js.map +1 -0
- package/dist/tools/research-story.d.ts +29 -0
- package/dist/tools/research-story.d.ts.map +1 -0
- package/dist/tools/research-story.js +78 -0
- package/dist/tools/research-story.js.map +1 -0
- package/dist/tools/rollback.d.ts +11 -0
- package/dist/tools/rollback.d.ts.map +1 -0
- package/dist/tools/rollback.js +81 -0
- package/dist/tools/rollback.js.map +1 -0
- package/dist/tools/scan-industry.d.ts +19 -0
- package/dist/tools/scan-industry.d.ts.map +1 -0
- package/dist/tools/scan-industry.js +82 -0
- package/dist/tools/scan-industry.js.map +1 -0
- package/dist/tools/screenshot.d.ts +11 -0
- package/dist/tools/screenshot.d.ts.map +1 -0
- package/dist/tools/screenshot.js +82 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/secret-request.d.ts +24 -0
- package/dist/tools/secret-request.d.ts.map +1 -0
- package/dist/tools/secret-request.js +75 -0
- package/dist/tools/secret-request.js.map +1 -0
- package/dist/tools/security.d.ts +26 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +78 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/self-inspect.d.ts +34 -0
- package/dist/tools/self-inspect.d.ts.map +1 -0
- package/dist/tools/self-inspect.js +427 -0
- package/dist/tools/self-inspect.js.map +1 -0
- package/dist/tools/suggest-beats.d.ts +17 -0
- package/dist/tools/suggest-beats.d.ts.map +1 -0
- package/dist/tools/suggest-beats.js +71 -0
- package/dist/tools/suggest-beats.js.map +1 -0
- package/dist/tools/suggest-stories.d.ts +26 -0
- package/dist/tools/suggest-stories.d.ts.map +1 -0
- package/dist/tools/suggest-stories.js +102 -0
- package/dist/tools/suggest-stories.js.map +1 -0
- package/dist/tools/support-request.d.ts +11 -0
- package/dist/tools/support-request.d.ts.map +1 -0
- package/dist/tools/support-request.js +110 -0
- package/dist/tools/support-request.js.map +1 -0
- package/dist/tools/switch-mode.d.ts +21 -0
- package/dist/tools/switch-mode.d.ts.map +1 -0
- package/dist/tools/switch-mode.js +57 -0
- package/dist/tools/switch-mode.js.map +1 -0
- package/dist/tools/task-manage.d.ts +16 -0
- package/dist/tools/task-manage.d.ts.map +1 -0
- package/dist/tools/task-manage.js +256 -0
- package/dist/tools/task-manage.js.map +1 -0
- package/dist/tools/task-suggest.d.ts +27 -0
- package/dist/tools/task-suggest.d.ts.map +1 -0
- package/dist/tools/task-suggest.js +70 -0
- package/dist/tools/task-suggest.js.map +1 -0
- package/dist/tools/test-generate.d.ts +20 -0
- package/dist/tools/test-generate.d.ts.map +1 -0
- package/dist/tools/test-generate.js +259 -0
- package/dist/tools/test-generate.js.map +1 -0
- package/dist/tools/test-run.d.ts +13 -0
- package/dist/tools/test-run.d.ts.map +1 -0
- package/dist/tools/test-run.js +177 -0
- package/dist/tools/test-run.js.map +1 -0
- package/dist/tools/todo-write.d.ts +11 -0
- package/dist/tools/todo-write.d.ts.map +1 -0
- package/dist/tools/todo-write.js +70 -0
- package/dist/tools/todo-write.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +84 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +728 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/types.d.ts +128 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/verification-trust.d.ts +39 -0
- package/dist/tools/verification-trust.d.ts.map +1 -0
- package/dist/tools/verification-trust.js +135 -0
- package/dist/tools/verification-trust.js.map +1 -0
- package/dist/tools/verify-change.d.ts +11 -0
- package/dist/tools/verify-change.d.ts.map +1 -0
- package/dist/tools/verify-change.js +775 -0
- package/dist/tools/verify-change.js.map +1 -0
- package/dist/tools/weather.d.ts +11 -0
- package/dist/tools/weather.d.ts.map +1 -0
- package/dist/tools/weather.js +96 -0
- package/dist/tools/weather.js.map +1 -0
- package/dist/tools/web-search.d.ts +12 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +137 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/write-article.d.ts +33 -0
- package/dist/tools/write-article.d.ts.map +1 -0
- package/dist/tools/write-article.js +206 -0
- package/dist/tools/write-article.js.map +1 -0
- package/dist/tools/write-exercise.d.ts +31 -0
- package/dist/tools/write-exercise.d.ts.map +1 -0
- package/dist/tools/write-exercise.js +278 -0
- package/dist/tools/write-exercise.js.map +1 -0
- package/dist/tools/write-post-image.d.ts +31 -0
- package/dist/tools/write-post-image.d.ts.map +1 -0
- package/dist/tools/write-post-image.js +102 -0
- package/dist/tools/write-post-image.js.map +1 -0
- package/dist/tools/write-post.d.ts +20 -0
- package/dist/tools/write-post.d.ts.map +1 -0
- package/dist/tools/write-post.js +113 -0
- package/dist/tools/write-post.js.map +1 -0
- package/dist/tools/write-recipe.d.ts +29 -0
- package/dist/tools/write-recipe.d.ts.map +1 -0
- package/dist/tools/write-recipe.js +262 -0
- package/dist/tools/write-recipe.js.map +1 -0
- package/dist/tools/write-video-post.d.ts +25 -0
- package/dist/tools/write-video-post.d.ts.map +1 -0
- package/dist/tools/write-video-post.js +238 -0
- package/dist/tools/write-video-post.js.map +1 -0
- package/dist/tools/write-voiceover.d.ts +29 -0
- package/dist/tools/write-voiceover.d.ts.map +1 -0
- package/dist/tools/write-voiceover.js +98 -0
- package/dist/tools/write-voiceover.js.map +1 -0
- package/dist/workflows/index.d.ts +4 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +2 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/types.d.ts +112 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +10 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/workflow-manager.d.ts +54 -0
- package/dist/workflows/workflow-manager.d.ts.map +1 -0
- package/dist/workflows/workflow-manager.js +277 -0
- package/dist/workflows/workflow-manager.js.map +1 -0
- package/package.json +223 -0
|
@@ -0,0 +1,876 @@
|
|
|
1
|
+
// ─── Desktop Automation Conductor ──────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Orchestrates the five-persona wave (Scout → Planner → Actor → Verifier →
|
|
4
|
+
// Narrator) into a real trajectory loop. This is the brain that the persona
|
|
5
|
+
// definitions, types, safety ontology, and budget tracker were all built for
|
|
6
|
+
// but which never existed — until now.
|
|
7
|
+
//
|
|
8
|
+
// Design (Phase A):
|
|
9
|
+
// - Scout — DETERMINISTIC. Structures the raw accessibility blob into a
|
|
10
|
+
// typed ScreenState. (LLM/vision merge lands in Phase C.)
|
|
11
|
+
// - Planner — LLM. The single reasoning call per step: picks the next action.
|
|
12
|
+
// - [gate] — classifyAction → decideApproval. Irreversible always confirms;
|
|
13
|
+
// privileged forbidden without opt-in. Prompts the host when needed.
|
|
14
|
+
// - Actor — DETERMINISTIC. Executes the exact ProposedAction via providers.
|
|
15
|
+
// - Verifier — LLM. Re-reads the screen, judges against expectedPostState.
|
|
16
|
+
// - Narrator — DETERMINISTIC (Phase A). Plain-English line + audit record.
|
|
17
|
+
//
|
|
18
|
+
// Host-agnostic: the host (IDE sidecar) injects the providers, the model-call,
|
|
19
|
+
// the approval prompt, and an emit callback. Core never imports Tauri.
|
|
20
|
+
import { ctxKey } from './screen-key.js';
|
|
21
|
+
import { mergeTiers, browserSnapshotToTier } from './perception.js';
|
|
22
|
+
import { DESKTOP_PLANNER, DESKTOP_VERIFIER, ACTION_KINDS as PLANNER_ACTION_KINDS, } from './personas.js';
|
|
23
|
+
import { classifyAction, decideApproval, escalateRisk, IRREVERSIBLE_VERBS, } from './safety.js';
|
|
24
|
+
import { BudgetTracker } from './budget.js';
|
|
25
|
+
// ── Runtime constants ──────────────────────────────────────────────────────
|
|
26
|
+
// Single source of truth: the exact set of kinds the Planner is TOLD it can
|
|
27
|
+
// use (personas.ts). Keeping a separate hand-maintained copy here is what let
|
|
28
|
+
// 'drag' and 'minimize_all' be advertised to the model but rejected by
|
|
29
|
+
// coerceAction as "invalid planner output" — derive it instead so it can never
|
|
30
|
+
// drift again.
|
|
31
|
+
const ACTION_KINDS = new Set(PLANNER_ACTION_KINDS);
|
|
32
|
+
// Advisory only — the authoritative credential gate is classifyAction(). This
|
|
33
|
+
// just flags fields so the user sees the lock icon and the Planner is warned.
|
|
34
|
+
const SENSITIVE_NAME = /password|secret|token|api.?key|credential|card.?number|cvv|cvc|pin\b/i;
|
|
35
|
+
const MAX_OBSERVE_MORE = 3; // consecutive re-reads before we call it stuck
|
|
36
|
+
const MAX_CONSECUTIVE_DEVIATIONS = 3;
|
|
37
|
+
// ── Public entry point ─────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Run a full desktop-automation trajectory. Returns when the task is done,
|
|
40
|
+
* the user stops it, it gets stuck, the budget is exhausted, or an error
|
|
41
|
+
* aborts it. Every step is gated, verified, and narrated.
|
|
42
|
+
*/
|
|
43
|
+
export async function runDesktopTrajectory(opts) {
|
|
44
|
+
const { task, permissionLevel, providers, callModel, requestApproval, emit, signal } = opts;
|
|
45
|
+
const log = opts.log ?? (() => { });
|
|
46
|
+
const budget = new BudgetTracker(opts.budget ?? {});
|
|
47
|
+
const trajectory = {
|
|
48
|
+
id: genId(),
|
|
49
|
+
task,
|
|
50
|
+
startedAt: new Date().toISOString(),
|
|
51
|
+
steps: [],
|
|
52
|
+
whitelist: opts.whitelist ?? [],
|
|
53
|
+
permissionLevel,
|
|
54
|
+
outcome: 'error',
|
|
55
|
+
};
|
|
56
|
+
let observeMore = 0;
|
|
57
|
+
let consecutiveDeviations = 0;
|
|
58
|
+
// Hard cycle brake: count verified successes per action signature. A small
|
|
59
|
+
// Planner re-runs the task like a checklist forever (click → arrive →
|
|
60
|
+
// re-navigate → re-click …); the second verified success of an IDENTICAL
|
|
61
|
+
// action means the work is done and the model has lost track — end the
|
|
62
|
+
// trajectory deterministically instead of letting it lap.
|
|
63
|
+
const successSignatures = new Map();
|
|
64
|
+
const actionSignature = (a) => JSON.stringify([a.kind, a.target ?? '', a.params ?? {}]);
|
|
65
|
+
try {
|
|
66
|
+
while (true) {
|
|
67
|
+
if (signal?.aborted) {
|
|
68
|
+
trajectory.outcome = 'stopped';
|
|
69
|
+
emit({ type: 'narrate', line: 'Stopped.' });
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
if (budget.snapshot().breached) {
|
|
73
|
+
trajectory.outcome = 'budget_exceeded';
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
const stepNumber = trajectory.steps.length + 1;
|
|
77
|
+
// 1 — Scout: perceive (deterministic structuring of the accessibility blob).
|
|
78
|
+
const { state: screenState, raw } = await scout(providers);
|
|
79
|
+
log(`step ${stepNumber} · Scout: ${screenState.elements.length} elements, activeApp=${screenState.activeApp ?? '?'}, confidence=${screenState.confidence}`);
|
|
80
|
+
// Phase 3 — fingerprint the screen we're about to plan on. Image key
|
|
81
|
+
// when the host allows capture; honest textual app+task key when not.
|
|
82
|
+
// Then pull hindsight for this screen: "last time it looked like this,
|
|
83
|
+
// X failed; Z worked" — TEXT for the Planner, never an order.
|
|
84
|
+
let screenKey;
|
|
85
|
+
try {
|
|
86
|
+
screenKey = (await opts.captureScreenKey?.()) ?? ctxKey(screenState.activeApp, task);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
screenKey = ctxKey(screenState.activeApp, task);
|
|
90
|
+
}
|
|
91
|
+
let forkHint = null;
|
|
92
|
+
if (opts.forkPointHint) {
|
|
93
|
+
try {
|
|
94
|
+
forkHint = await opts.forkPointHint(screenKey);
|
|
95
|
+
}
|
|
96
|
+
catch { /* hindsight is optional */ }
|
|
97
|
+
if (forkHint)
|
|
98
|
+
log(`step ${stepNumber} · Fork-point recall: hindsight available for this screen`);
|
|
99
|
+
}
|
|
100
|
+
// 2 — Planner: the one reasoning call. Decide the single next action.
|
|
101
|
+
const planned = await runPlanner(callModel, task, trajectory, screenState, providers.vision?.isAvailable() ?? false, log, forkHint);
|
|
102
|
+
const action = planned.action;
|
|
103
|
+
log(`step ${stepNumber} · Planner: ${action.kind}${action.target ? ` → "${action.target}"` : ''} [${action.riskClass}] — ${truncate(action.reasoning, 120)}`);
|
|
104
|
+
// Terminal / control kinds short-circuit the wave.
|
|
105
|
+
if (action.kind === 'done') {
|
|
106
|
+
trajectory.outcome = 'completed';
|
|
107
|
+
emit({ type: 'narrate', line: action.reasoning?.trim() || 'Task complete.' });
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (action.kind === 'stuck') {
|
|
111
|
+
trajectory.outcome = 'stuck';
|
|
112
|
+
emit({ type: 'narrate', line: `Stuck: ${String(action.params?.reason ?? action.reasoning ?? 'no progress')}` });
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
if (action.kind === 'observe_more') {
|
|
116
|
+
if (++observeMore > MAX_OBSERVE_MORE) {
|
|
117
|
+
trajectory.outcome = 'stuck';
|
|
118
|
+
emit({ type: 'narrate', line: 'Kept needing another look without acting — pausing.' });
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
continue; // re-scout next iteration without acting
|
|
122
|
+
}
|
|
123
|
+
observeMore = 0;
|
|
124
|
+
// 3 — Safety gate. Resolve the target, classify, decide.
|
|
125
|
+
const element = action.target
|
|
126
|
+
? screenState.elements.find(e => e.id === action.target || e.name === action.target)
|
|
127
|
+
: undefined;
|
|
128
|
+
// For a drag, the DROP target drives the risk (dragging a file onto
|
|
129
|
+
// "Trash" is irreversible even though the file itself is innocuous).
|
|
130
|
+
const dropRef = action.kind === 'drag' ? (action.params?.dropTarget ?? action.params?.to) : undefined;
|
|
131
|
+
const dropEl = dropRef ? screenState.elements.find(e => e.id === dropRef || e.name === dropRef) : undefined;
|
|
132
|
+
const classification = classifyAction({
|
|
133
|
+
kind: action.kind,
|
|
134
|
+
targetName: element?.name,
|
|
135
|
+
dropTargetName: dropRef ? (dropEl?.name ?? String(dropRef)) : undefined,
|
|
136
|
+
targetType: element?.kind,
|
|
137
|
+
isMaskedField: element?.sensitive,
|
|
138
|
+
appName: screenState.activeApp,
|
|
139
|
+
});
|
|
140
|
+
// Defence in depth: the computed classification may only ESCALATE
|
|
141
|
+
// relative to what the Planner itself declared — never launder it down.
|
|
142
|
+
// (Observed: Planner said "Empty Recycle Bin" was irreversible, "empty"
|
|
143
|
+
// wasn't in the verb list, and the gate auto-ran it as reversible.)
|
|
144
|
+
const escalated = escalateRisk(classification.riskClass, action.riskClass);
|
|
145
|
+
if (escalated !== classification.riskClass) {
|
|
146
|
+
classification.riskClass = escalated;
|
|
147
|
+
classification.reasons.push(`escalated: the Planner itself declared this ${escalated}`);
|
|
148
|
+
}
|
|
149
|
+
const decision = decideApproval(classification.riskClass, permissionLevel, opts.privilegedOptIn ?? false);
|
|
150
|
+
// Screen-said-so containment (Phase 1): if the impetus for a mutative
|
|
151
|
+
// action came from CONTENT ON THE SCREEN rather than the user's task —
|
|
152
|
+
// Planner self-declared, or the backstop heuristic caught an
|
|
153
|
+
// irreversible verb in the target the task never mentioned — it always
|
|
154
|
+
// gets a fresh confirm, even in Drive. A webpage must never be able to
|
|
155
|
+
// drive Ava's hands unattended. Defence in depth: this stacks ON TOP of
|
|
156
|
+
// the irreversible floor, it never replaces it.
|
|
157
|
+
action.origin = inferObservedOrigin(action, task, element?.name);
|
|
158
|
+
const MUTATIVE = new Set(['mutative-reversible', 'mutative-irreversible', 'privileged']);
|
|
159
|
+
if (action.origin === 'observed' && MUTATIVE.has(classification.riskClass)
|
|
160
|
+
&& !decision.forbidden && !decision.requiresApproval) {
|
|
161
|
+
decision.requiresApproval = true;
|
|
162
|
+
decision.reason = 'This action was prompted by content on the screen (the page asked for it), not by your instructions — confirming with you first.';
|
|
163
|
+
classification.reasons.push('observed-origin: impetus came from screen content, not the user task');
|
|
164
|
+
}
|
|
165
|
+
const inOwnBrowser = action.kind === 'navigate'
|
|
166
|
+
|| action.kind === 'scroll' && !!providers.browser?.isLive?.()
|
|
167
|
+
|| element?.source === 'playwright';
|
|
168
|
+
log(`step ${stepNumber} · Gate: ${decision.forbidden ? 'FORBIDDEN' : decision.requiresApproval ? 'approval required' : 'auto-allowed'} (${classification.riskClass}${inOwnBrowser ? ', own-browser' : ''})`);
|
|
169
|
+
if (decision.forbidden) {
|
|
170
|
+
emit({ type: 'narrate', line: `Blocked a ${classification.riskClass} action — ${decision.reason}.` });
|
|
171
|
+
trajectory.outcome = 'stopped';
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
if (decision.requiresApproval) {
|
|
175
|
+
emit({ type: 'approval_required', action, classification });
|
|
176
|
+
const approved = await requestApproval({ action, classification, element });
|
|
177
|
+
if (!approved) {
|
|
178
|
+
emit({ type: 'narrate', line: `You declined: ${describeAction(action, element)}.` });
|
|
179
|
+
trajectory.outcome = 'stopped';
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// Kill-switch: never execute an action after the stop fired — this catches
|
|
184
|
+
// an abort during the (abortable) Planner call OR the approval wait, so a
|
|
185
|
+
// mutating action can't land after Ctrl+Alt+K.
|
|
186
|
+
if (signal?.aborted) {
|
|
187
|
+
trajectory.outcome = 'stopped';
|
|
188
|
+
emit({ type: 'narrate', line: 'Stopped.' });
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
// 4 — Actor: execute exactly (deterministic). In Drive, the Actor flashes
|
|
192
|
+
// a preview box on the target first (Phase 0D) — Ask/Watch already show
|
|
193
|
+
// the approval card, so the preview is Drive's "watch me work" signal.
|
|
194
|
+
const executionResult = await runActor(providers, action, raw, screenState.elements, permissionLevel === 'drive');
|
|
195
|
+
log(`step ${stepNumber} · Actor: ${executionResult.ok ? `ok (${executionResult.latencyMs}ms)` : `FAILED — ${executionResult.error ?? 'unknown'}`}`);
|
|
196
|
+
// Stop the instant the kill lands — don't scout/verify/plan another step.
|
|
197
|
+
// Bounds the residual after Ctrl+Alt+K to the one action just executed.
|
|
198
|
+
if (signal?.aborted) {
|
|
199
|
+
trajectory.outcome = 'stopped';
|
|
200
|
+
emit({ type: 'narrate', line: 'Stopped.' });
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
// 5 — Verifier: re-read the screen, judge against the prediction — WITH
|
|
204
|
+
// measured evidence (URL/title/element-count deltas). The LLM's
|
|
205
|
+
// impression of "did anything change" is unreliable; the deltas aren't.
|
|
206
|
+
// Let the UI settle first: context menus, dialogs and window transitions
|
|
207
|
+
// take a few hundred ms to render, and a scout that races the animation
|
|
208
|
+
// hands the Verifier a half-drawn screen — the source of false
|
|
209
|
+
// "menu did not appear" / "0 elements" deviations on successful actions.
|
|
210
|
+
if (executionResult.ok)
|
|
211
|
+
await delay(600);
|
|
212
|
+
const { state: freshState } = await scout(providers);
|
|
213
|
+
const evidence = {
|
|
214
|
+
urlBefore: screenState.activeUrl ?? null,
|
|
215
|
+
urlAfter: freshState.activeUrl ?? null,
|
|
216
|
+
urlChanged: (screenState.activeUrl ?? null) !== (freshState.activeUrl ?? null),
|
|
217
|
+
titleBefore: screenState.activeTitle ?? null,
|
|
218
|
+
titleAfter: freshState.activeTitle ?? null,
|
|
219
|
+
elementCountBefore: screenState.elements.length,
|
|
220
|
+
elementCountAfter: freshState.elements.length,
|
|
221
|
+
};
|
|
222
|
+
const verified = await runVerifier(callModel, action, executionResult, freshState, evidence);
|
|
223
|
+
const verificationResult = verified.verification;
|
|
224
|
+
log(`step ${stepNumber} · Verifier: ${verificationResult.status} — ${truncate(verificationResult.detail, 120)}`);
|
|
225
|
+
consecutiveDeviations = verificationResult.status === 'verified' ? 0 : consecutiveDeviations + 1;
|
|
226
|
+
// 6 — Narrator: the user-facing line + audit (deterministic in Phase A).
|
|
227
|
+
// `element` resolves the target to its human name — the user must never
|
|
228
|
+
// see a raw selector or internal id in chat.
|
|
229
|
+
const userUpdate = narrate(stepNumber, action, executionResult, verificationResult, element);
|
|
230
|
+
// 7 — Record the step + advance the budget.
|
|
231
|
+
const tokensConsumed = {
|
|
232
|
+
scout: 0,
|
|
233
|
+
planner: planned.tokens,
|
|
234
|
+
actor: 0,
|
|
235
|
+
verifier: verified.tokens,
|
|
236
|
+
narrator: 0,
|
|
237
|
+
omniParser: 0,
|
|
238
|
+
};
|
|
239
|
+
const step = {
|
|
240
|
+
stepNumber, screenState, proposedAction: action,
|
|
241
|
+
executionResult, verificationResult, userUpdate, tokensConsumed,
|
|
242
|
+
screenKey,
|
|
243
|
+
};
|
|
244
|
+
trajectory.steps.push(step);
|
|
245
|
+
const snap = budget.recordStep(tokensConsumed);
|
|
246
|
+
emit({ type: 'step', step, budget: snap, header: budget.formatHeader() });
|
|
247
|
+
if (consecutiveDeviations >= MAX_CONSECUTIVE_DEVIATIONS) {
|
|
248
|
+
emit({ type: 'narrate', line: 'Three steps without progress — pausing for you.' });
|
|
249
|
+
trajectory.outcome = 'stuck';
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
if (executionResult.ok && verificationResult.status === 'verified') {
|
|
253
|
+
const sig = actionSignature(action);
|
|
254
|
+
const count = (successSignatures.get(sig) ?? 0) + 1;
|
|
255
|
+
successSignatures.set(sig, count);
|
|
256
|
+
if (count >= 2) {
|
|
257
|
+
trajectory.outcome = 'completed';
|
|
258
|
+
log(`step ${stepNumber} · Brake: action repeated successfully (${action.kind}) — task treated as complete`);
|
|
259
|
+
emit({ type: 'narrate', line: 'Done — everything the task asked for has been carried out.' });
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (snap.breached) {
|
|
264
|
+
trajectory.outcome = 'budget_exceeded';
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
271
|
+
// A request rejected by the kill-switch surfaces as a thrown 'aborted' —
|
|
272
|
+
// that's a clean stop, not an error to alarm the user with.
|
|
273
|
+
if (signal?.aborted || msg === 'aborted') {
|
|
274
|
+
trajectory.outcome = 'stopped';
|
|
275
|
+
emit({ type: 'narrate', line: 'Stopped.' });
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
trajectory.outcome = 'error';
|
|
279
|
+
emit({ type: 'error', message: msg });
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
trajectory.endedAt = new Date().toISOString();
|
|
283
|
+
emit({ type: 'done', trajectory });
|
|
284
|
+
return trajectory;
|
|
285
|
+
}
|
|
286
|
+
// ── Scout (deterministic) ──────────────────────────────────────────────────
|
|
287
|
+
//
|
|
288
|
+
// Phase C1: Scout gathers every perception tier that is already live and
|
|
289
|
+
// merges them into one ranked ScreenState (perception.ts). The UIA tree is
|
|
290
|
+
// always attempted; the Playwright DOM contributes only when a browser is
|
|
291
|
+
// already open (observation never launches anything). Vision joins in C3.
|
|
292
|
+
async function scout(providers) {
|
|
293
|
+
const raw = providers.uia ? await providers.uia.listElements() : [];
|
|
294
|
+
const uiaTier = {
|
|
295
|
+
source: 'uia',
|
|
296
|
+
elements: raw.map((e, i) => ({
|
|
297
|
+
id: e.name && e.name.trim() ? e.name : `${e.control_type || 'el'}-${i}`,
|
|
298
|
+
kind: e.control_type || 'unknown',
|
|
299
|
+
name: e.name || '',
|
|
300
|
+
source: 'uia',
|
|
301
|
+
// Real enabled-state from UIA: a greyed-out control is visible but NOT
|
|
302
|
+
// interactable — and often the fact itself is the answer (a disabled
|
|
303
|
+
// "Empty Recycle Bin" means the bin is already empty).
|
|
304
|
+
interactable: e.enabled !== false,
|
|
305
|
+
// A covered element (desktop icon behind an app window) is enumerable
|
|
306
|
+
// but untouchable — the Planner must clear the occlusion first.
|
|
307
|
+
occluded: e.occluded === true || undefined,
|
|
308
|
+
// Surface provenance: without it the Verifier reads an open context
|
|
309
|
+
// menu as "a list of search results" and misjudges the step.
|
|
310
|
+
surface: e.surface,
|
|
311
|
+
sensitive: SENSITIVE_NAME.test(e.name || ''),
|
|
312
|
+
})),
|
|
313
|
+
};
|
|
314
|
+
const tiers = [uiaTier];
|
|
315
|
+
if (providers.browser?.isLive?.()) {
|
|
316
|
+
try {
|
|
317
|
+
tiers.push(browserSnapshotToTier(await providers.browser.snapshot()));
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
uiaTier.notes = 'A browser is open but its DOM snapshot failed — web elements may be missing.';
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else if (providers.browser) {
|
|
324
|
+
// Affordance, not just absence: the Planner needs to know the door
|
|
325
|
+
// exists, or an empty screen reads as a dead end instead of a start.
|
|
326
|
+
uiaTier.notes = [uiaTier.notes, "Ava's built-in browser is closed — the 'navigate' action opens it automatically."]
|
|
327
|
+
.filter(Boolean).join(' ');
|
|
328
|
+
}
|
|
329
|
+
const state = mergeTiers(tiers);
|
|
330
|
+
// Phase C3 — when the structured tiers came back thin and a vision lane is
|
|
331
|
+
// enabled, tell the Planner it can target by DESCRIPTION: the Actor will
|
|
332
|
+
// locate described elements visually. Advertise the lane HONESTLY — if it's
|
|
333
|
+
// an unverified lane (local Holo, platform preview), say so, so the Planner
|
|
334
|
+
// leans on the accessibility tree first and treats visual hits with caution.
|
|
335
|
+
const cap = providers.vision?.capability?.();
|
|
336
|
+
const visionAvailable = cap ? cap.available : !!providers.vision?.isAvailable();
|
|
337
|
+
if (state.elements.length < 3 && visionAvailable) {
|
|
338
|
+
const caveat = cap && !cap.verified ? ' (this vision lane is unverified — prefer accessibility-tree targets, and treat visual results with a little caution)' : '';
|
|
339
|
+
state.notes = [state.notes,
|
|
340
|
+
`Vision is available${caveat}: you may 'click' elements by DESCRIBING them in plain words (e.g. "the blue Save button") — the system locates them visually on screen.`]
|
|
341
|
+
.filter(Boolean).join(' ');
|
|
342
|
+
}
|
|
343
|
+
return { state, raw };
|
|
344
|
+
}
|
|
345
|
+
// ── Planner (LLM) ──────────────────────────────────────────────────────────
|
|
346
|
+
async function runPlanner(callModel, task, trajectory, screen, visionAvailable = false, log = () => { }, forkHint = null) {
|
|
347
|
+
// Explicit completion ledger — a small model can't reliably infer "I already
|
|
348
|
+
// did that" from raw step history, so we hand it the conclusion: a plain
|
|
349
|
+
// list of everything that has already succeeded this run.
|
|
350
|
+
const alreadyCompleted = trajectory.steps
|
|
351
|
+
.filter(s => s.executionResult.ok && s.verificationResult.status === 'verified')
|
|
352
|
+
.map(s => pastTense(s.proposedAction));
|
|
353
|
+
const userContent = JSON.stringify({
|
|
354
|
+
task,
|
|
355
|
+
alreadyCompletedThisRun: alreadyCompleted.length > 0
|
|
356
|
+
? { actions: alreadyCompleted, rule: 'These are DONE. Never repeat them. If they cover the whole task, output kind "done" now.' }
|
|
357
|
+
: undefined,
|
|
358
|
+
// Phase 3 — fork-point hindsight for THIS screen. Weigh it, don't obey
|
|
359
|
+
// it: conditions change, and every action still passes the safety gate.
|
|
360
|
+
learnedAtThisScreen: forkHint ?? undefined,
|
|
361
|
+
recentSteps: summariseTrajectory(trajectory),
|
|
362
|
+
// activeUrl/activeTitle matter as much as the elements: without them the
|
|
363
|
+
// Planner cannot recognise "the page I'm on IS the destination" and
|
|
364
|
+
// re-navigates to confirm instead of declaring done.
|
|
365
|
+
screen: {
|
|
366
|
+
activeApp: screen.activeApp, activeUrl: screen.activeUrl, activeTitle: screen.activeTitle,
|
|
367
|
+
confidence: screen.confidence, notes: screen.notes, elements: screen.elements,
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
const { text, tokensIn, tokensOut } = await callModel({
|
|
371
|
+
persona: 'planner', systemPrompt: DESKTOP_PLANNER.systemPrompt, userContent,
|
|
372
|
+
});
|
|
373
|
+
let tokens = tokensIn + tokensOut;
|
|
374
|
+
let action = coerceAction(parseJson(text));
|
|
375
|
+
// Diagnostic: when the model's reply won't parse into an action, log what it
|
|
376
|
+
// actually returned. An empty reply almost always means the active model put
|
|
377
|
+
// everything into a reasoning channel (or ran out of tokens mid-think) and
|
|
378
|
+
// left `content` blank — the Planner needs plain JSON, not a thinking model.
|
|
379
|
+
if (action.kind === 'stuck' && action.params?.reason === 'invalid planner output') {
|
|
380
|
+
const raw = (text ?? '').trim();
|
|
381
|
+
log(`Planner RAW reply unparseable — len=${raw.length}, tokensOut=${tokensOut}, first200=${JSON.stringify(raw.slice(0, 200))}`);
|
|
382
|
+
}
|
|
383
|
+
// Structural validation + ONE corrective retry. Smaller local models drop
|
|
384
|
+
// required fields (a click with no target executes as a guaranteed miss and
|
|
385
|
+
// burns a whole wave on it) — a pointed correction usually snaps them back.
|
|
386
|
+
const problem = validateAction(action, screen, visionAvailable) ?? validatePrediction(action);
|
|
387
|
+
if (problem) {
|
|
388
|
+
const retry = await callModel({
|
|
389
|
+
persona: 'planner',
|
|
390
|
+
systemPrompt: DESKTOP_PLANNER.systemPrompt,
|
|
391
|
+
userContent: `${userContent}\n\nYour previous output was INVALID: ${problem}\nPrevious output: ${text.slice(0, 400)}\nReturn ONE corrected JSON ProposedAction now. No prose.`,
|
|
392
|
+
});
|
|
393
|
+
tokens += retry.tokensIn + retry.tokensOut;
|
|
394
|
+
const retried = coerceAction(parseJson(retry.text));
|
|
395
|
+
if (!(validateAction(retried, screen, visionAvailable) ?? validatePrediction(retried))) {
|
|
396
|
+
action = retried;
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
// Still malformed — take another look next cycle rather than crash
|
|
400
|
+
// or execute a doomed action.
|
|
401
|
+
action = {
|
|
402
|
+
kind: 'observe_more',
|
|
403
|
+
riskClass: 'observational',
|
|
404
|
+
reasoning: `Planner output stayed invalid after a retry (${problem}).`,
|
|
405
|
+
expectedPostState: 'n/a',
|
|
406
|
+
params: { reason: problem },
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return { action, tokens };
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Structural check — does the action carry what its kind requires, and does
|
|
414
|
+
* its target actually exist on the CURRENT screen? The second half matters
|
|
415
|
+
* because recalled memories contain element ids from past sessions; small
|
|
416
|
+
* models copy them verbatim and click ghosts (observed: a planner repeating
|
|
417
|
+
* a dead selector from memory while 21 live elements sat in front of it).
|
|
418
|
+
*/
|
|
419
|
+
function validateAction(action, screen, visionAvailable = false) {
|
|
420
|
+
switch (action.kind) {
|
|
421
|
+
case 'click':
|
|
422
|
+
case 'double_click':
|
|
423
|
+
case 'right_click': {
|
|
424
|
+
if (!action.target) {
|
|
425
|
+
return `"${action.kind}" requires "target" — the exact id or name of an element from the screen list`;
|
|
426
|
+
}
|
|
427
|
+
// With a vision lane available, a descriptive target the structured
|
|
428
|
+
// tiers can't see is legitimate — the Actor will ground it visually.
|
|
429
|
+
if (!visionAvailable && screen && screen.elements.length > 0) {
|
|
430
|
+
const t = action.target.toLowerCase();
|
|
431
|
+
const onScreen = screen.elements.some(e => e.id === action.target || e.name.toLowerCase() === t || (!!e.name && e.name.toLowerCase().includes(t)));
|
|
432
|
+
if (!onScreen) {
|
|
433
|
+
return `target "${action.target}" is NOT on the current screen — it may be a stale id from notes of a previous session. Pick the exact "id" of an element from the CURRENT screen.elements list`;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return null;
|
|
437
|
+
}
|
|
438
|
+
case 'drag': {
|
|
439
|
+
if (!action.target)
|
|
440
|
+
return '"drag" requires "target" — the id/name of the element to drag';
|
|
441
|
+
if (!action.params?.dropTarget && !action.params?.to)
|
|
442
|
+
return '"drag" requires params.dropTarget — the id/name of the element to drop onto';
|
|
443
|
+
return null;
|
|
444
|
+
}
|
|
445
|
+
case 'type':
|
|
446
|
+
return typeof action.params?.text === 'string' && String(action.params.text).length > 0
|
|
447
|
+
? null : '"type" requires params.text (the text to type)';
|
|
448
|
+
case 'key':
|
|
449
|
+
return action.params?.key ? null : '"key" requires params.key (e.g. "Enter")';
|
|
450
|
+
case 'navigate':
|
|
451
|
+
return action.params?.url ? null : '"navigate" requires params.url';
|
|
452
|
+
case 'launch':
|
|
453
|
+
return (action.params?.app || action.target) ? null : '"launch" requires params.app (the application name)';
|
|
454
|
+
default:
|
|
455
|
+
return null;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Acting kinds must carry a real expectedPostState. Without a prediction the
|
|
460
|
+
* Verifier has nothing to check and confabulates verdicts — observed: it ruled
|
|
461
|
+
* "no navigation happened" while standing on the destination page, sending the
|
|
462
|
+
* Planner into an undo/redo loop of its own completed task.
|
|
463
|
+
*/
|
|
464
|
+
const ACTING_KINDS = new Set([
|
|
465
|
+
'click', 'double_click', 'right_click', 'type', 'key', 'scroll', 'drag', 'minimize_all', 'navigate', 'launch',
|
|
466
|
+
]);
|
|
467
|
+
function validatePrediction(action) {
|
|
468
|
+
if (!ACTING_KINDS.has(action.kind))
|
|
469
|
+
return null;
|
|
470
|
+
const p = (action.expectedPostState ?? '').trim();
|
|
471
|
+
return p.length >= 5
|
|
472
|
+
? null
|
|
473
|
+
: '"expectedPostState" is required — one concrete sentence describing what the screen should show after this action (the Verifier checks against it)';
|
|
474
|
+
}
|
|
475
|
+
/** Defensive: a malformed Planner output becomes a controlled 'stuck', never a crash.
|
|
476
|
+
* Exported for the regression suite (0G) — pure function, no side effects. */
|
|
477
|
+
export function coerceAction(parsed) {
|
|
478
|
+
// Some models wrap the action: {"action": {"kind": ...}, "riskClass": ...}
|
|
479
|
+
// — kind inside, siblings outside (observed live; it killed a perfectly
|
|
480
|
+
// good recovery plan as "invalid"). Unwrap and merge, inner fields winning.
|
|
481
|
+
const wrapped = parsed?.action;
|
|
482
|
+
if (parsed && typeof parsed.kind !== 'string' && wrapped && typeof wrapped === 'object') {
|
|
483
|
+
parsed = { ...parsed, ...wrapped };
|
|
484
|
+
}
|
|
485
|
+
if (!parsed || typeof parsed.kind !== 'string' || !ACTION_KINDS.has(parsed.kind)) {
|
|
486
|
+
return {
|
|
487
|
+
kind: 'stuck',
|
|
488
|
+
riskClass: 'observational',
|
|
489
|
+
reasoning: 'Planner returned an unparseable or invalid action.',
|
|
490
|
+
expectedPostState: 'n/a',
|
|
491
|
+
params: { reason: 'invalid planner output' },
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
return {
|
|
495
|
+
kind: parsed.kind,
|
|
496
|
+
target: parsed.target,
|
|
497
|
+
params: parsed.params,
|
|
498
|
+
riskClass: parsed.riskClass ?? 'mutative-reversible',
|
|
499
|
+
reasoning: parsed.reasoning ?? '',
|
|
500
|
+
expectedPostState: parsed.expectedPostState ?? '',
|
|
501
|
+
// Anti-injection origin (Phase 1). Anything that isn't an explicit 'user'
|
|
502
|
+
// declaration stays 'observed'-eligible downstream — but we only trust an
|
|
503
|
+
// explicit value here; the conductor's heuristic may still override.
|
|
504
|
+
origin: parsed.origin === 'user' || parsed.origin === 'observed' ? parsed.origin : undefined,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Backstop heuristic for the origin flag (Phase 1) — never the only guard.
|
|
509
|
+
* If the action's target text carries an irreversible verb that the USER'S
|
|
510
|
+
* OWN TASK never mentioned, the impetus likely came from the screen (a page
|
|
511
|
+
* saying "click Delete to continue"), whatever the Planner declared. We only
|
|
512
|
+
* ever UPGRADE user→observed, never launder observed→user.
|
|
513
|
+
* Exported for the regression suite.
|
|
514
|
+
*/
|
|
515
|
+
export function inferObservedOrigin(action, task, elementName) {
|
|
516
|
+
if (action.origin === 'observed')
|
|
517
|
+
return 'observed';
|
|
518
|
+
const text = `${elementName ?? ''} ${action.target ?? ''}`.toLowerCase();
|
|
519
|
+
const taskLower = task.toLowerCase();
|
|
520
|
+
for (const verb of IRREVERSIBLE_VERBS) {
|
|
521
|
+
const pattern = new RegExp(`\\b${verb}\\b`, 'i');
|
|
522
|
+
if (pattern.test(text) && !pattern.test(taskLower)) {
|
|
523
|
+
return 'observed';
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return action.origin;
|
|
527
|
+
}
|
|
528
|
+
// ── Actor (deterministic) ──────────────────────────────────────────────────
|
|
529
|
+
async function runActor(providers, action, raw, merged = [], preview = false) {
|
|
530
|
+
const start = Date.now();
|
|
531
|
+
try {
|
|
532
|
+
const input = providers.input;
|
|
533
|
+
// Visual preview (Phase 0D) — in Drive, flash a click-through box on the
|
|
534
|
+
// target BEFORE acting so autonomous operation is legible. Best-effort:
|
|
535
|
+
// a host without an overlay (or a failed flash) never blocks the action,
|
|
536
|
+
// and this is never a safety guard — irreversible actions still confirm.
|
|
537
|
+
const PREVIEW_MS = 450;
|
|
538
|
+
const showPreview = async (bx, by, bw, bh) => {
|
|
539
|
+
if (!preview || !input?.highlight || bw <= 0 || bh <= 0)
|
|
540
|
+
return;
|
|
541
|
+
try {
|
|
542
|
+
await input.highlight(bx, by, bw, bh, PREVIEW_MS);
|
|
543
|
+
}
|
|
544
|
+
catch { /* preview is cosmetic */ }
|
|
545
|
+
};
|
|
546
|
+
// Phase C2: a target grounded by the DOM tier carries a selector — those
|
|
547
|
+
// actions route through the browser (exact under scroll/resize), while
|
|
548
|
+
// UIA-grounded targets keep the native coordinate path.
|
|
549
|
+
const webEl = action.target ? resolveWebTarget(action.target, merged) : null;
|
|
550
|
+
switch (action.kind) {
|
|
551
|
+
case 'click': {
|
|
552
|
+
if (webEl?.selector && providers.browser) {
|
|
553
|
+
await providers.browser.click(webEl.selector);
|
|
554
|
+
break;
|
|
555
|
+
}
|
|
556
|
+
const el = resolveTarget(action.target, raw);
|
|
557
|
+
if (el) {
|
|
558
|
+
// A greyed-out control can't be clicked — and the disabled state is
|
|
559
|
+
// usually the answer itself (disabled "Empty Recycle Bin" = already
|
|
560
|
+
// empty). Fail with the meaning so the Planner can conclude 'done'.
|
|
561
|
+
if (el.enabled === false) {
|
|
562
|
+
throw new Error(`'${el.name}' is visible but DISABLED (greyed out) — Windows disables an action when there is nothing for it to do, so its purpose is likely already satisfied. Do not retry it; if the task's goal is already met, declare done.`);
|
|
563
|
+
}
|
|
564
|
+
if (el.occluded === true) {
|
|
565
|
+
throw new Error(`'${el.name}' is COVERED by another window — a click would hit that window instead. Clear the occlusion first (minimize_all for desktop icons, or focus the right window), then retry.`);
|
|
566
|
+
}
|
|
567
|
+
await showPreview(el.x, el.y, el.width, el.height);
|
|
568
|
+
// Native clicks go through UIA's name-based invoke (exact, and the
|
|
569
|
+
// host may not wire coordinate input at all); coords are the fallback.
|
|
570
|
+
if (providers.uia?.clickElement) {
|
|
571
|
+
const clicked = await providers.uia.clickElement(el.name);
|
|
572
|
+
if (clicked)
|
|
573
|
+
break;
|
|
574
|
+
// The invoke does its OWN fresh lookup, which can land on a
|
|
575
|
+
// different surface if focus bounced (e.g. straight after an
|
|
576
|
+
// approval card closed). The coordinates from the planning scout
|
|
577
|
+
// still stand — fall back to them rather than stranding the step.
|
|
578
|
+
if (input && typeof input.click === 'function') {
|
|
579
|
+
await input.click(el.cx, el.cy);
|
|
580
|
+
break;
|
|
581
|
+
}
|
|
582
|
+
throw new Error(`could not click '${el.name}' via UIA`);
|
|
583
|
+
}
|
|
584
|
+
if (!input || typeof input.click !== 'function')
|
|
585
|
+
throw new Error('no click provider');
|
|
586
|
+
await input.click(el.cx, el.cy);
|
|
587
|
+
break;
|
|
588
|
+
}
|
|
589
|
+
// Phase C3 — vision fallback: the target isn't in any structured
|
|
590
|
+
// tier (custom-rendered UI), so locate it visually from the
|
|
591
|
+
// description and click the returned screen coordinates.
|
|
592
|
+
if (providers.vision?.isAvailable() && action.target) {
|
|
593
|
+
const pt = await providers.vision.localize(action.target);
|
|
594
|
+
if (!pt)
|
|
595
|
+
throw new Error(`couldn't locate '${action.target}' visually on the screen`);
|
|
596
|
+
if (!input || typeof input.click !== 'function')
|
|
597
|
+
throw new Error('vision located the element but no coordinate click is available');
|
|
598
|
+
await showPreview(pt.x - 16, pt.y - 16, 32, 32); // no bbox from vision — box the point
|
|
599
|
+
await input.click(pt.x, pt.y);
|
|
600
|
+
return { ok: true, latencyMs: Date.now() - start, sideEffects: ['located visually'] };
|
|
601
|
+
}
|
|
602
|
+
throw new Error(`target '${action.target ?? '?'}' not found on screen`);
|
|
603
|
+
}
|
|
604
|
+
case 'double_click':
|
|
605
|
+
case 'right_click': {
|
|
606
|
+
if (!input)
|
|
607
|
+
throw new Error('no input provider');
|
|
608
|
+
const el = resolveTarget(action.target, raw);
|
|
609
|
+
if (!el) {
|
|
610
|
+
throw new Error(webEl
|
|
611
|
+
? `'${action.target}' is a web element — ${action.kind} on web elements isn't supported yet; use click`
|
|
612
|
+
: `target '${action.target ?? '?'}' not found on screen`);
|
|
613
|
+
}
|
|
614
|
+
if (el.occluded === true) {
|
|
615
|
+
throw new Error(`'${el.name}' is COVERED by another window — the ${action.kind} would hit that window instead. Clear the occlusion first (minimize_all for desktop icons, or focus the right window), then retry.`);
|
|
616
|
+
}
|
|
617
|
+
await showPreview(el.x, el.y, el.width, el.height);
|
|
618
|
+
if (action.kind === 'double_click')
|
|
619
|
+
await input.doubleClick(el.cx, el.cy);
|
|
620
|
+
else
|
|
621
|
+
await input.rightClick(el.cx, el.cy);
|
|
622
|
+
break;
|
|
623
|
+
}
|
|
624
|
+
case 'type': {
|
|
625
|
+
if (webEl?.selector && providers.browser) {
|
|
626
|
+
await providers.browser.type(String(action.params?.text ?? ''), webEl.selector);
|
|
627
|
+
break;
|
|
628
|
+
}
|
|
629
|
+
if (!input)
|
|
630
|
+
throw new Error('no input provider');
|
|
631
|
+
const el = action.target ? resolveTarget(action.target, raw) : null;
|
|
632
|
+
if (el) {
|
|
633
|
+
await showPreview(el.x, el.y, el.width, el.height);
|
|
634
|
+
await input.click(el.cx, el.cy); // focus the field first
|
|
635
|
+
}
|
|
636
|
+
await input.typeText(String(action.params?.text ?? ''));
|
|
637
|
+
break;
|
|
638
|
+
}
|
|
639
|
+
case 'key': {
|
|
640
|
+
if (!input)
|
|
641
|
+
throw new Error('no input provider');
|
|
642
|
+
await input.keyPress(String(action.params?.key ?? ''));
|
|
643
|
+
break;
|
|
644
|
+
}
|
|
645
|
+
case 'scroll': {
|
|
646
|
+
const dir = action.params?.direction ?? 'down';
|
|
647
|
+
const amount = Number(action.params?.amount) || undefined;
|
|
648
|
+
// Web scroll rides the browser when it's open; native wheel input is
|
|
649
|
+
// a Phase D primitive, so fail with the truth rather than a TypeError.
|
|
650
|
+
if (providers.browser?.isLive?.() && providers.browser.scroll) {
|
|
651
|
+
await providers.browser.scroll(dir, amount);
|
|
652
|
+
break;
|
|
653
|
+
}
|
|
654
|
+
if (input && typeof input.scroll === 'function') {
|
|
655
|
+
await input.scroll(dir, amount);
|
|
656
|
+
break;
|
|
657
|
+
}
|
|
658
|
+
throw new Error('native scroll is not available yet — only the browser can scroll for now');
|
|
659
|
+
}
|
|
660
|
+
case 'drag': {
|
|
661
|
+
if (!input || typeof input.drag !== 'function')
|
|
662
|
+
throw new Error('no drag provider');
|
|
663
|
+
const src = resolveTarget(action.target, raw);
|
|
664
|
+
if (!src)
|
|
665
|
+
throw new Error(`drag source '${action.target ?? '?'}' not found on screen`);
|
|
666
|
+
const dropRef = String(action.params?.dropTarget ?? action.params?.to ?? '');
|
|
667
|
+
const dst = dropRef ? resolveTarget(dropRef, raw) : null;
|
|
668
|
+
if (!dst)
|
|
669
|
+
throw new Error(`drop target '${dropRef || '?'}' not found on screen — pass params.dropTarget (the id/name of where to drop)`);
|
|
670
|
+
await showPreview(src.x, src.y, src.width, src.height); // box the element being dragged
|
|
671
|
+
await input.drag(src.cx, src.cy, dst.cx, dst.cy);
|
|
672
|
+
break;
|
|
673
|
+
}
|
|
674
|
+
case 'minimize_all': {
|
|
675
|
+
// Reveal the desktop so its icons (Recycle Bin, This PC, files) become
|
|
676
|
+
// visible + clickable — the fix for "the icon's behind a window".
|
|
677
|
+
if (!input || typeof input.minimizeAll !== 'function')
|
|
678
|
+
throw new Error('no minimize provider');
|
|
679
|
+
await input.minimizeAll();
|
|
680
|
+
break;
|
|
681
|
+
}
|
|
682
|
+
case 'navigate': {
|
|
683
|
+
if (!providers.browser)
|
|
684
|
+
throw new Error('no browser provider for navigate');
|
|
685
|
+
await providers.browser.navigate(String(action.params?.url ?? ''));
|
|
686
|
+
break;
|
|
687
|
+
}
|
|
688
|
+
case 'launch': {
|
|
689
|
+
if (!providers.appLauncher)
|
|
690
|
+
throw new Error('no app launcher provider');
|
|
691
|
+
const app = String(action.params?.app ?? action.target ?? '').trim();
|
|
692
|
+
if (!app)
|
|
693
|
+
throw new Error('launch requires params.app (the app name or path)');
|
|
694
|
+
// The host's launcher is the trust boundary — it rejects shell
|
|
695
|
+
// interpreters and admin tools by basename. Core just forwards the name.
|
|
696
|
+
const { launched } = await providers.appLauncher.launch(app);
|
|
697
|
+
return { ok: true, latencyMs: Date.now() - start, sideEffects: [`launched ${launched}`] };
|
|
698
|
+
}
|
|
699
|
+
case 'wait': {
|
|
700
|
+
await delay(Math.min(5000, Number(action.params?.ms) || 500));
|
|
701
|
+
break;
|
|
702
|
+
}
|
|
703
|
+
default:
|
|
704
|
+
throw new Error(`actor cannot execute kind '${action.kind}'`);
|
|
705
|
+
}
|
|
706
|
+
return { ok: true, latencyMs: Date.now() - start, sideEffects: [] };
|
|
707
|
+
}
|
|
708
|
+
catch (err) {
|
|
709
|
+
return { ok: false, error: err instanceof Error ? err.message : String(err), latencyMs: Date.now() - start };
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
/** Match a ProposedAction.target back to the raw UIA element (for exact coords). */
|
|
713
|
+
function resolveTarget(target, raw) {
|
|
714
|
+
if (!target)
|
|
715
|
+
return null;
|
|
716
|
+
const t = target.toLowerCase();
|
|
717
|
+
return raw.find(e => (e.name || '').toLowerCase() === t)
|
|
718
|
+
?? raw.find(e => (e.name || '').toLowerCase().includes(t))
|
|
719
|
+
?? null;
|
|
720
|
+
}
|
|
721
|
+
/** Match a target to a DOM-grounded element from the merged ScreenState. */
|
|
722
|
+
function resolveWebTarget(target, merged) {
|
|
723
|
+
const t = target.toLowerCase();
|
|
724
|
+
const web = merged.filter(e => e.source === 'playwright' && e.selector);
|
|
725
|
+
return web.find(e => e.id === target)
|
|
726
|
+
?? web.find(e => e.name.toLowerCase() === t)
|
|
727
|
+
?? web.find(e => !!e.name && e.name.toLowerCase().includes(t))
|
|
728
|
+
?? null;
|
|
729
|
+
}
|
|
730
|
+
// ── Verifier (LLM) ─────────────────────────────────────────────────────────
|
|
731
|
+
async function runVerifier(callModel, action, result, freshScreen, evidence) {
|
|
732
|
+
const userContent = JSON.stringify({
|
|
733
|
+
proposedAction: action,
|
|
734
|
+
executionResult: result,
|
|
735
|
+
// Measured facts — the Verifier is instructed these outrank impressions.
|
|
736
|
+
evidence,
|
|
737
|
+
freshScreen: {
|
|
738
|
+
activeApp: freshScreen.activeApp, activeUrl: freshScreen.activeUrl, activeTitle: freshScreen.activeTitle,
|
|
739
|
+
confidence: freshScreen.confidence, notes: freshScreen.notes, elements: freshScreen.elements,
|
|
740
|
+
},
|
|
741
|
+
});
|
|
742
|
+
const { text, tokensIn, tokensOut } = await callModel({
|
|
743
|
+
persona: 'verifier', systemPrompt: DESKTOP_VERIFIER.systemPrompt, userContent,
|
|
744
|
+
});
|
|
745
|
+
const parsed = parseJson(text);
|
|
746
|
+
const status = parsed && ['verified', 'deviated', 'rollback_needed'].includes(parsed.status)
|
|
747
|
+
? parsed.status
|
|
748
|
+
: 'deviated';
|
|
749
|
+
return {
|
|
750
|
+
verification: {
|
|
751
|
+
status,
|
|
752
|
+
detail: parsed?.detail ?? 'Verifier returned no detail.',
|
|
753
|
+
deviation: parsed?.deviation,
|
|
754
|
+
},
|
|
755
|
+
tokens: tokensIn + tokensOut,
|
|
756
|
+
};
|
|
757
|
+
}
|
|
758
|
+
// ── Narrator (deterministic, Phase A) ──────────────────────────────────────
|
|
759
|
+
function narrate(step, action, result, vr, element) {
|
|
760
|
+
let line;
|
|
761
|
+
if (!result.ok) {
|
|
762
|
+
line = `Tried to ${describeAction(action, element)}, but it failed${result.error ? `: ${humaniseDetail(result.error)}` : '.'}`;
|
|
763
|
+
}
|
|
764
|
+
else if (vr.status === 'deviated') {
|
|
765
|
+
line = `${capitalise(describeAction(action, element))} — but ${humaniseDetail(vr.deviation ?? 'the screen didn’t change as expected')}.`;
|
|
766
|
+
}
|
|
767
|
+
else if (vr.status === 'rollback_needed') {
|
|
768
|
+
line = `${capitalise(describeAction(action, element))} — that left things worse than before; pausing.`;
|
|
769
|
+
}
|
|
770
|
+
else {
|
|
771
|
+
line = `${capitalise(pastTense(action, element))}.`;
|
|
772
|
+
}
|
|
773
|
+
return {
|
|
774
|
+
line,
|
|
775
|
+
audit: { step, action, result, verification: vr, timestamp: new Date().toISOString() },
|
|
776
|
+
};
|
|
777
|
+
}
|
|
778
|
+
// The user-facing rule (from the Narrator spec): no selectors, no internal
|
|
779
|
+
// identifiers. A target the merge layer can't resolve to a human name is
|
|
780
|
+
// shown as a plain phrase, never as raw CSS/ids.
|
|
781
|
+
const SELECTOR_LIKE = /^\[|^#|^\.|data-ava-id|^web-\d+$|nth-of-type|^[a-z]+\[/i;
|
|
782
|
+
function displayTarget(action, element) {
|
|
783
|
+
const name = element?.name?.trim();
|
|
784
|
+
if (name)
|
|
785
|
+
return name;
|
|
786
|
+
const target = action.target?.trim();
|
|
787
|
+
if (!target || SELECTOR_LIKE.test(target))
|
|
788
|
+
return undefined;
|
|
789
|
+
return target;
|
|
790
|
+
}
|
|
791
|
+
/** Strip selector debris from Verifier/Actor prose before it reaches chat. */
|
|
792
|
+
function humaniseDetail(detail) {
|
|
793
|
+
return detail
|
|
794
|
+
// Playwright timeout dumps include a multi-line call log — replace the
|
|
795
|
+
// whole thing with a sentence a person can act on.
|
|
796
|
+
.replace(/page\.\w+: Timeout \d+ms exceeded[\s\S]*/i, "the element couldn't be found on the page in time")
|
|
797
|
+
.replace(/['"`]?\[data-ava-id="[^"]*"\]['"`]?/gi, 'that element')
|
|
798
|
+
.replace(/data-ava-id="?[^\s"\]]*"?\]?/gi, 'that element')
|
|
799
|
+
.replace(/['"`]web-\d+['"`]/gi, 'that element')
|
|
800
|
+
.replace(/\bweb-\d+\b/gi, 'that element');
|
|
801
|
+
}
|
|
802
|
+
function describeAction(action, element) {
|
|
803
|
+
const target = displayTarget(action, element);
|
|
804
|
+
switch (action.kind) {
|
|
805
|
+
case 'click': return target ? `click "${target}"` : 'click an element on the page';
|
|
806
|
+
case 'double_click': return target ? `double-click "${target}"` : 'double-click an element';
|
|
807
|
+
case 'right_click': return target ? `right-click "${target}"` : 'right-click an element';
|
|
808
|
+
case 'type': return target ? `type into "${target}"` : 'type';
|
|
809
|
+
case 'key': return `press ${String(action.params?.key ?? 'a key')}`;
|
|
810
|
+
case 'scroll': return `scroll ${String(action.params?.direction ?? 'down')}`;
|
|
811
|
+
case 'drag': return target ? `drag "${target}" onto "${String(action.params?.dropTarget ?? action.params?.to ?? '?')}"` : 'drag an element';
|
|
812
|
+
case 'minimize_all': return 'minimize all windows to show the desktop';
|
|
813
|
+
case 'navigate': return `open ${String(action.params?.url ?? 'a page')}`;
|
|
814
|
+
case 'launch': return `open ${String(action.params?.app ?? action.target ?? 'an app')}`;
|
|
815
|
+
case 'wait': return 'wait';
|
|
816
|
+
default: return action.kind;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
function pastTense(action, element) {
|
|
820
|
+
const target = displayTarget(action, element);
|
|
821
|
+
switch (action.kind) {
|
|
822
|
+
case 'click': return target ? `clicked "${target}"` : 'clicked an element on the page';
|
|
823
|
+
case 'double_click': return target ? `double-clicked "${target}"` : 'double-clicked an element';
|
|
824
|
+
case 'right_click': return target ? `right-clicked "${target}"` : 'right-clicked an element';
|
|
825
|
+
case 'type': return target ? `typed into "${target}"` : 'typed';
|
|
826
|
+
case 'key': return `pressed ${String(action.params?.key ?? 'a key')}`;
|
|
827
|
+
case 'scroll': return `scrolled ${String(action.params?.direction ?? 'down')}`;
|
|
828
|
+
case 'drag': return target ? `dragged "${target}"` : 'dragged an element';
|
|
829
|
+
case 'minimize_all': return 'minimized all windows to show the desktop';
|
|
830
|
+
case 'navigate': return `opened ${String(action.params?.url ?? 'a page')}`;
|
|
831
|
+
case 'launch': return `opened ${String(action.params?.app ?? action.target ?? 'an app')}`;
|
|
832
|
+
case 'wait': return 'waited';
|
|
833
|
+
default: return action.kind;
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
// ── Helpers ────────────────────────────────────────────────────────────────
|
|
837
|
+
/** Compact recent trajectory for the Planner prompt — last 5 steps only. */
|
|
838
|
+
function summariseTrajectory(trajectory) {
|
|
839
|
+
return trajectory.steps.slice(-5).map(s => ({
|
|
840
|
+
step: s.stepNumber,
|
|
841
|
+
action: { kind: s.proposedAction.kind, target: s.proposedAction.target, params: s.proposedAction.params },
|
|
842
|
+
ok: s.executionResult.ok,
|
|
843
|
+
verification: s.verificationResult.status,
|
|
844
|
+
detail: s.verificationResult.detail,
|
|
845
|
+
}));
|
|
846
|
+
}
|
|
847
|
+
/** Exported for the regression suite (0G) — pure function, no side effects. */
|
|
848
|
+
export function parseJson(text) {
|
|
849
|
+
if (!text)
|
|
850
|
+
return null;
|
|
851
|
+
const cleaned = text.replace(/^```(?:json)?\s*/i, '').replace(/\s*```$/i, '').trim();
|
|
852
|
+
try {
|
|
853
|
+
return JSON.parse(cleaned);
|
|
854
|
+
}
|
|
855
|
+
catch {
|
|
856
|
+
// tolerate prose around the JSON — grab the first {...} block
|
|
857
|
+
const match = cleaned.match(/\{[\s\S]*\}/);
|
|
858
|
+
if (match) {
|
|
859
|
+
try {
|
|
860
|
+
return JSON.parse(match[0]);
|
|
861
|
+
}
|
|
862
|
+
catch { /* fall through */ }
|
|
863
|
+
}
|
|
864
|
+
return null;
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
function capitalise(s) { return s.charAt(0).toUpperCase() + s.slice(1); }
|
|
868
|
+
function truncate(s, max) {
|
|
869
|
+
const str = (s ?? '').trim();
|
|
870
|
+
return str.length > max ? `${str.slice(0, max - 1)}…` : str;
|
|
871
|
+
}
|
|
872
|
+
function delay(ms) { return new Promise(r => setTimeout(r, ms)); }
|
|
873
|
+
function genId() {
|
|
874
|
+
return `traj-${Date.now().toString(36)}-${Math.floor(Math.random() * 1e9).toString(36)}`;
|
|
875
|
+
}
|
|
876
|
+
//# sourceMappingURL=conductor.js.map
|