@exellix/ai-tasks 7.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +3 -0
- package/.metadata/instructions-builders/create-expected-output-instructions.md +195 -0
- package/.metadata/readme.md +48 -0
- package/.metadata/shared/audit.md +29 -0
- package/.metadata/skills/professional-answer +32 -0
- package/.metadata/skills/professional-answer.compressed.md +11 -0
- package/.metadata/skills/professional-answer.instructions +33 -0
- package/.metadata/skills/professional-answer.instructions.md +33 -0
- package/.metadata/skills/professional-answer.l2.md +28 -0
- package/.metadata/skills/professional-answer.md +32 -0
- package/.metadata/skills/professional-answer.prompt +1 -0
- package/.metadata/skills/professional-answer.prompt.md +1 -0
- package/.metadata/skills/professional-decision.md +26 -0
- package/BREAKING-CHANGES.md +43 -0
- package/CHANGELOG.md +147 -0
- package/README.md +2497 -0
- package/RUNTASK_REQUEST.md +369 -0
- package/dist/activix/activixClient.d.ts +6 -0
- package/dist/activix/activixClient.d.ts.map +1 -0
- package/dist/activix/activixClient.js +131 -0
- package/dist/activix/activixClient.js.map +1 -0
- package/dist/activix/getTaskActivities.d.ts +10 -0
- package/dist/activix/getTaskActivities.d.ts.map +1 -0
- package/dist/activix/getTaskActivities.js +17 -0
- package/dist/activix/getTaskActivities.js.map +1 -0
- package/dist/activix/phaseTracking.d.ts +17 -0
- package/dist/activix/phaseTracking.d.ts.map +1 -0
- package/dist/activix/phaseTracking.js +85 -0
- package/dist/activix/phaseTracking.js.map +1 -0
- package/dist/aiScoping/index.d.ts +6 -0
- package/dist/aiScoping/index.d.ts.map +1 -0
- package/dist/aiScoping/index.js +4 -0
- package/dist/aiScoping/index.js.map +1 -0
- package/dist/aiScoping/runAiScoping.d.ts +36 -0
- package/dist/aiScoping/runAiScoping.d.ts.map +1 -0
- package/dist/aiScoping/runAiScoping.js +100 -0
- package/dist/aiScoping/runAiScoping.js.map +1 -0
- package/dist/aiScoping/runScopingCall.d.ts +23 -0
- package/dist/aiScoping/runScopingCall.d.ts.map +1 -0
- package/dist/aiScoping/runScopingCall.js +50 -0
- package/dist/aiScoping/runScopingCall.js.map +1 -0
- package/dist/aiScoping/validateAiScoping.d.ts +7 -0
- package/dist/aiScoping/validateAiScoping.d.ts.map +1 -0
- package/dist/aiScoping/validateAiScoping.js +33 -0
- package/dist/aiScoping/validateAiScoping.js.map +1 -0
- package/dist/aiSkillsUpstreamExports.d.ts +13 -0
- package/dist/aiSkillsUpstreamExports.d.ts.map +1 -0
- package/dist/aiSkillsUpstreamExports.js +12 -0
- package/dist/aiSkillsUpstreamExports.js.map +1 -0
- package/dist/analysis/analyzeRunTaskRequest.d.ts +29 -0
- package/dist/analysis/analyzeRunTaskRequest.d.ts.map +1 -0
- package/dist/analysis/analyzeRunTaskRequest.js +85 -0
- package/dist/analysis/analyzeRunTaskRequest.js.map +1 -0
- package/dist/analysis/index.d.ts +3 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +2 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/builders/task-request-builder.d.ts +310 -0
- package/dist/builders/task-request-builder.d.ts.map +1 -0
- package/dist/builders/task-request-builder.js +581 -0
- package/dist/builders/task-request-builder.js.map +1 -0
- package/dist/compile/compileTaskConfiguration.d.ts +15 -0
- package/dist/compile/compileTaskConfiguration.d.ts.map +1 -0
- package/dist/compile/compileTaskConfiguration.js +184 -0
- package/dist/compile/compileTaskConfiguration.js.map +1 -0
- package/dist/compile/index.d.ts +2 -0
- package/dist/compile/index.d.ts.map +1 -0
- package/dist/compile/index.js +2 -0
- package/dist/compile/index.js.map +1 -0
- package/dist/core/task-sdk.d.ts +36 -0
- package/dist/core/task-sdk.d.ts.map +1 -0
- package/dist/core/task-sdk.js +2432 -0
- package/dist/core/task-sdk.js.map +1 -0
- package/dist/errors/smartInputValidationError.d.ts +39 -0
- package/dist/errors/smartInputValidationError.d.ts.map +1 -0
- package/dist/errors/smartInputValidationError.js +97 -0
- package/dist/errors/smartInputValidationError.js.map +1 -0
- package/dist/errors/taskConfigurationCompileError.d.ts +16 -0
- package/dist/errors/taskConfigurationCompileError.d.ts.map +1 -0
- package/dist/errors/taskConfigurationCompileError.js +20 -0
- package/dist/errors/taskConfigurationCompileError.js.map +1 -0
- package/dist/execution-strategies/applyExecutionStrategyOutputs.d.ts +17 -0
- package/dist/execution-strategies/applyExecutionStrategyOutputs.d.ts.map +1 -0
- package/dist/execution-strategies/applyExecutionStrategyOutputs.js +63 -0
- package/dist/execution-strategies/applyExecutionStrategyOutputs.js.map +1 -0
- package/dist/execution-strategies/constants.d.ts +14 -0
- package/dist/execution-strategies/constants.d.ts.map +1 -0
- package/dist/execution-strategies/constants.js +13 -0
- package/dist/execution-strategies/constants.js.map +1 -0
- package/dist/execution-strategies/executionStrategyCatalogMetadata.d.ts +9 -0
- package/dist/execution-strategies/executionStrategyCatalogMetadata.d.ts.map +1 -0
- package/dist/execution-strategies/executionStrategyCatalogMetadata.js +37 -0
- package/dist/execution-strategies/executionStrategyCatalogMetadata.js.map +1 -0
- package/dist/execution-strategies/genericExecutionFuncxEnvelope.d.ts +94 -0
- package/dist/execution-strategies/genericExecutionFuncxEnvelope.d.ts.map +1 -0
- package/dist/execution-strategies/genericExecutionFuncxEnvelope.js +306 -0
- package/dist/execution-strategies/genericExecutionFuncxEnvelope.js.map +1 -0
- package/dist/execution-strategies/resolveExecutionStrategies.d.ts +14 -0
- package/dist/execution-strategies/resolveExecutionStrategies.d.ts.map +1 -0
- package/dist/execution-strategies/resolveExecutionStrategies.js +108 -0
- package/dist/execution-strategies/resolveExecutionStrategies.js.map +1 -0
- package/dist/execution-strategies/runFuncxExecutionStrategy.d.ts +37 -0
- package/dist/execution-strategies/runFuncxExecutionStrategy.d.ts.map +1 -0
- package/dist/execution-strategies/runFuncxExecutionStrategy.js +72 -0
- package/dist/execution-strategies/runFuncxExecutionStrategy.js.map +1 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/resolveLlmCallForXynthesis.d.ts +52 -0
- package/dist/internal/resolveLlmCallForXynthesis.d.ts.map +1 -0
- package/dist/internal/resolveLlmCallForXynthesis.js +81 -0
- package/dist/internal/resolveLlmCallForXynthesis.js.map +1 -0
- package/dist/internal/resolveRunTaskRuntimeKnobs.d.ts +19 -0
- package/dist/internal/resolveRunTaskRuntimeKnobs.d.ts.map +1 -0
- package/dist/internal/resolveRunTaskRuntimeKnobs.js +52 -0
- package/dist/internal/resolveRunTaskRuntimeKnobs.js.map +1 -0
- package/dist/internal/runPostStepLlmCall.d.ts +52 -0
- package/dist/internal/runPostStepLlmCall.d.ts.map +1 -0
- package/dist/internal/runPostStepLlmCall.js +170 -0
- package/dist/internal/runPostStepLlmCall.js.map +1 -0
- package/dist/localTasks/collectEvidence.d.ts +3 -0
- package/dist/localTasks/collectEvidence.d.ts.map +1 -0
- package/dist/localTasks/collectEvidence.js +364 -0
- package/dist/localTasks/collectEvidence.js.map +1 -0
- package/dist/localTasks/decideWebScope.d.ts +3 -0
- package/dist/localTasks/decideWebScope.d.ts.map +1 -0
- package/dist/localTasks/decideWebScope.js +56 -0
- package/dist/localTasks/decideWebScope.js.map +1 -0
- package/dist/localTasks/index.d.ts +5 -0
- package/dist/localTasks/index.d.ts.map +1 -0
- package/dist/localTasks/index.js +19 -0
- package/dist/localTasks/index.js.map +1 -0
- package/dist/localTasks/narrixAssetPlayground.d.ts +13 -0
- package/dist/localTasks/narrixAssetPlayground.d.ts.map +1 -0
- package/dist/localTasks/narrixAssetPlayground.js +161 -0
- package/dist/localTasks/narrixAssetPlayground.js.map +1 -0
- package/dist/localTasks/narrixSubnetPlayground.d.ts +14 -0
- package/dist/localTasks/narrixSubnetPlayground.d.ts.map +1 -0
- package/dist/localTasks/narrixSubnetPlayground.js +168 -0
- package/dist/localTasks/narrixSubnetPlayground.js.map +1 -0
- package/dist/localTasks/narrixVulnGroupPlayground.d.ts +13 -0
- package/dist/localTasks/narrixVulnGroupPlayground.d.ts.map +1 -0
- package/dist/localTasks/narrixVulnGroupPlayground.js +161 -0
- package/dist/localTasks/narrixVulnGroupPlayground.js.map +1 -0
- package/dist/localTasks/narrixVulnInstancePlayground.d.ts +13 -0
- package/dist/localTasks/narrixVulnInstancePlayground.d.ts.map +1 -0
- package/dist/localTasks/narrixVulnInstancePlayground.js +165 -0
- package/dist/localTasks/narrixVulnInstancePlayground.js.map +1 -0
- package/dist/localTasks/nodeCallExport.d.ts +6 -0
- package/dist/localTasks/nodeCallExport.d.ts.map +1 -0
- package/dist/localTasks/nodeCallExport.js +99 -0
- package/dist/localTasks/nodeCallExport.js.map +1 -0
- package/dist/localTasks/nodeCallExportBatch.d.ts +3 -0
- package/dist/localTasks/nodeCallExportBatch.d.ts.map +1 -0
- package/dist/localTasks/nodeCallExportBatch.js +52 -0
- package/dist/localTasks/nodeCallExportBatch.js.map +1 -0
- package/dist/localTasks/normalizeNarrixResult.d.ts +3 -0
- package/dist/localTasks/normalizeNarrixResult.d.ts.map +1 -0
- package/dist/localTasks/normalizeNarrixResult.js +106 -0
- package/dist/localTasks/normalizeNarrixResult.js.map +1 -0
- package/dist/localTasks/registry.d.ts +4 -0
- package/dist/localTasks/registry.d.ts.map +1 -0
- package/dist/localTasks/registry.js +8 -0
- package/dist/localTasks/registry.js.map +1 -0
- package/dist/localTasks/types.d.ts +28 -0
- package/dist/localTasks/types.d.ts.map +1 -0
- package/dist/localTasks/types.js +2 -0
- package/dist/localTasks/types.js.map +1 -0
- package/dist/localTasks/validateInput.d.ts +3 -0
- package/dist/localTasks/validateInput.d.ts.map +1 -0
- package/dist/localTasks/validateInput.js +66 -0
- package/dist/localTasks/validateInput.js.map +1 -0
- package/dist/methods/convenience-methods.d.ts +45 -0
- package/dist/methods/convenience-methods.d.ts.map +1 -0
- package/dist/methods/convenience-methods.js +39 -0
- package/dist/methods/convenience-methods.js.map +1 -0
- package/dist/narrix/applyNarrixScope.d.ts +10 -0
- package/dist/narrix/applyNarrixScope.d.ts.map +1 -0
- package/dist/narrix/applyNarrixScope.js +69 -0
- package/dist/narrix/applyNarrixScope.js.map +1 -0
- package/dist/narrix/buildNarrixAttachment.d.ts +9 -0
- package/dist/narrix/buildNarrixAttachment.d.ts.map +1 -0
- package/dist/narrix/buildNarrixAttachment.js +29 -0
- package/dist/narrix/buildNarrixAttachment.js.map +1 -0
- package/dist/narrix/buildWebScopeScopeInput.d.ts +39 -0
- package/dist/narrix/buildWebScopeScopeInput.d.ts.map +1 -0
- package/dist/narrix/buildWebScopeScopeInput.js +193 -0
- package/dist/narrix/buildWebScopeScopeInput.js.map +1 -0
- package/dist/narrix/flags.d.ts +4 -0
- package/dist/narrix/flags.d.ts.map +1 -0
- package/dist/narrix/flags.js +4 -0
- package/dist/narrix/flags.js.map +1 -0
- package/dist/narrix/index.d.ts +11 -0
- package/dist/narrix/index.d.ts.map +1 -0
- package/dist/narrix/index.js +14 -0
- package/dist/narrix/index.js.map +1 -0
- package/dist/narrix/narrixClient.d.ts +9 -0
- package/dist/narrix/narrixClient.d.ts.map +1 -0
- package/dist/narrix/narrixClient.js +46 -0
- package/dist/narrix/narrixClient.js.map +1 -0
- package/dist/narrix/narrixContextMarkdown.d.ts +15 -0
- package/dist/narrix/narrixContextMarkdown.d.ts.map +1 -0
- package/dist/narrix/narrixContextMarkdown.js +98 -0
- package/dist/narrix/narrixContextMarkdown.js.map +1 -0
- package/dist/narrix/narrixRunnerModule.d.ts +11 -0
- package/dist/narrix/narrixRunnerModule.d.ts.map +1 -0
- package/dist/narrix/narrixRunnerModule.js +17 -0
- package/dist/narrix/narrixRunnerModule.js.map +1 -0
- package/dist/narrix/runNarrixForChat.d.ts +3 -0
- package/dist/narrix/runNarrixForChat.d.ts.map +1 -0
- package/dist/narrix/runNarrixForChat.js +51 -0
- package/dist/narrix/runNarrixForChat.js.map +1 -0
- package/dist/narrix/runNarrixForDocs.d.ts +3 -0
- package/dist/narrix/runNarrixForDocs.d.ts.map +1 -0
- package/dist/narrix/runNarrixForDocs.js +50 -0
- package/dist/narrix/runNarrixForDocs.js.map +1 -0
- package/dist/narrix/runNarrixForRecord.d.ts +3 -0
- package/dist/narrix/runNarrixForRecord.d.ts.map +1 -0
- package/dist/narrix/runNarrixForRecord.js +47 -0
- package/dist/narrix/runNarrixForRecord.js.map +1 -0
- package/dist/narrix/runNarrixForText.d.ts +3 -0
- package/dist/narrix/runNarrixForText.d.ts.map +1 -0
- package/dist/narrix/runNarrixForText.js +49 -0
- package/dist/narrix/runNarrixForText.js.map +1 -0
- package/dist/narrix/runnerDispatch.d.ts +12 -0
- package/dist/narrix/runnerDispatch.d.ts.map +1 -0
- package/dist/narrix/runnerDispatch.js +19 -0
- package/dist/narrix/runnerDispatch.js.map +1 -0
- package/dist/narrix/seedBundleRouting.d.ts +15 -0
- package/dist/narrix/seedBundleRouting.d.ts.map +1 -0
- package/dist/narrix/seedBundleRouting.js +46 -0
- package/dist/narrix/seedBundleRouting.js.map +1 -0
- package/dist/narrix/task.d.ts +4 -0
- package/dist/narrix/task.d.ts.map +1 -0
- package/dist/narrix/task.js +143 -0
- package/dist/narrix/task.js.map +1 -0
- package/dist/narrix/types.d.ts +104 -0
- package/dist/narrix/types.d.ts.map +1 -0
- package/dist/narrix/types.js +3 -0
- package/dist/narrix/types.js.map +1 -0
- package/dist/narrix/webContextMarkdown.d.ts +54 -0
- package/dist/narrix/webContextMarkdown.d.ts.map +1 -0
- package/dist/narrix/webContextMarkdown.js +206 -0
- package/dist/narrix/webContextMarkdown.js.map +1 -0
- package/dist/narrix/webScoper.d.ts +43 -0
- package/dist/narrix/webScoper.d.ts.map +1 -0
- package/dist/narrix/webScoper.js +144 -0
- package/dist/narrix/webScoper.js.map +1 -0
- package/dist/observability/debugTrace.d.ts +31 -0
- package/dist/observability/debugTrace.d.ts.map +1 -0
- package/dist/observability/debugTrace.js +117 -0
- package/dist/observability/debugTrace.js.map +1 -0
- package/dist/observability/extractAiTasksObservability.d.ts +7 -0
- package/dist/observability/extractAiTasksObservability.d.ts.map +1 -0
- package/dist/observability/extractAiTasksObservability.js +98 -0
- package/dist/observability/extractAiTasksObservability.js.map +1 -0
- package/dist/observability/graphExecutionRunLogContract.d.ts +19 -0
- package/dist/observability/graphExecutionRunLogContract.d.ts.map +1 -0
- package/dist/observability/graphExecutionRunLogContract.js +11 -0
- package/dist/observability/graphExecutionRunLogContract.js.map +1 -0
- package/dist/packaged-tasks-client.d.ts +66 -0
- package/dist/packaged-tasks-client.d.ts.map +1 -0
- package/dist/packaged-tasks-client.js +100 -0
- package/dist/packaged-tasks-client.js.map +1 -0
- package/dist/planWebScopeQuestions/index.d.ts +78 -0
- package/dist/planWebScopeQuestions/index.d.ts.map +1 -0
- package/dist/planWebScopeQuestions/index.js +282 -0
- package/dist/planWebScopeQuestions/index.js.map +1 -0
- package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.d.ts +18 -0
- package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.d.ts.map +1 -0
- package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.js +42 -0
- package/dist/planWebScopeQuestions/runResearchPlanQuestionsFuncx.js.map +1 -0
- package/dist/post-steps/audit/loadAuditTemplates.d.ts +72 -0
- package/dist/post-steps/audit/loadAuditTemplates.d.ts.map +1 -0
- package/dist/post-steps/audit/loadAuditTemplates.js +62 -0
- package/dist/post-steps/audit/loadAuditTemplates.js.map +1 -0
- package/dist/post-steps/audit/parseAuditOutput.d.ts +11 -0
- package/dist/post-steps/audit/parseAuditOutput.d.ts.map +1 -0
- package/dist/post-steps/audit/parseAuditOutput.js +50 -0
- package/dist/post-steps/audit/parseAuditOutput.js.map +1 -0
- package/dist/post-steps/audit/runAudit.d.ts +22 -0
- package/dist/post-steps/audit/runAudit.d.ts.map +1 -0
- package/dist/post-steps/audit/runAudit.js +406 -0
- package/dist/post-steps/audit/runAudit.js.map +1 -0
- package/dist/post-steps/audit/runAuditCall.d.ts +23 -0
- package/dist/post-steps/audit/runAuditCall.d.ts.map +1 -0
- package/dist/post-steps/audit/runAuditCall.js +32 -0
- package/dist/post-steps/audit/runAuditCall.js.map +1 -0
- package/dist/post-steps/polish/loadPolishTemplates.d.ts +35 -0
- package/dist/post-steps/polish/loadPolishTemplates.d.ts.map +1 -0
- package/dist/post-steps/polish/loadPolishTemplates.js +38 -0
- package/dist/post-steps/polish/loadPolishTemplates.js.map +1 -0
- package/dist/post-steps/polish/parsePolishOutput.d.ts +6 -0
- package/dist/post-steps/polish/parsePolishOutput.d.ts.map +1 -0
- package/dist/post-steps/polish/parsePolishOutput.js +47 -0
- package/dist/post-steps/polish/parsePolishOutput.js.map +1 -0
- package/dist/post-steps/polish/runPolish.d.ts +24 -0
- package/dist/post-steps/polish/runPolish.d.ts.map +1 -0
- package/dist/post-steps/polish/runPolish.js +147 -0
- package/dist/post-steps/polish/runPolish.js.map +1 -0
- package/dist/post-steps/polish/runPolishCall.d.ts +22 -0
- package/dist/post-steps/polish/runPolishCall.d.ts.map +1 -0
- package/dist/post-steps/polish/runPolishCall.js +32 -0
- package/dist/post-steps/polish/runPolishCall.js.map +1 -0
- package/dist/post-steps/resolvePostStepConfig.d.ts +58 -0
- package/dist/post-steps/resolvePostStepConfig.d.ts.map +1 -0
- package/dist/post-steps/resolvePostStepConfig.js +105 -0
- package/dist/post-steps/resolvePostStepConfig.js.map +1 -0
- package/dist/rendrixUpstreamExports.d.ts +7 -0
- package/dist/rendrixUpstreamExports.d.ts.map +1 -0
- package/dist/rendrixUpstreamExports.js +6 -0
- package/dist/rendrixUpstreamExports.js.map +1 -0
- package/dist/skillCatalogExports.d.ts +8 -0
- package/dist/skillCatalogExports.d.ts.map +1 -0
- package/dist/skillCatalogExports.js +8 -0
- package/dist/skillCatalogExports.js.map +1 -0
- package/dist/strategies/direct-execution-strategy.d.ts +31 -0
- package/dist/strategies/direct-execution-strategy.d.ts.map +1 -0
- package/dist/strategies/direct-execution-strategy.js +107 -0
- package/dist/strategies/direct-execution-strategy.js.map +1 -0
- package/dist/strategies/execution-strategy.interface.d.ts +31 -0
- package/dist/strategies/execution-strategy.interface.d.ts.map +1 -0
- package/dist/strategies/execution-strategy.interface.js +2 -0
- package/dist/strategies/execution-strategy.interface.js.map +1 -0
- package/dist/strategies/index.d.ts +9 -0
- package/dist/strategies/index.d.ts.map +1 -0
- package/dist/strategies/index.js +8 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/strategies/strategy-factory.d.ts +45 -0
- package/dist/strategies/strategy-factory.d.ts.map +1 -0
- package/dist/strategies/strategy-factory.js +59 -0
- package/dist/strategies/strategy-factory.js.map +1 -0
- package/dist/synthesis/index.d.ts +9 -0
- package/dist/synthesis/index.d.ts.map +1 -0
- package/dist/synthesis/index.js +8 -0
- package/dist/synthesis/index.js.map +1 -0
- package/dist/synthesis/resolveSourceMaterial.d.ts +35 -0
- package/dist/synthesis/resolveSourceMaterial.d.ts.map +1 -0
- package/dist/synthesis/resolveSourceMaterial.js +152 -0
- package/dist/synthesis/resolveSourceMaterial.js.map +1 -0
- package/dist/synthesis/runStructuredSynthesisRobust.d.ts +42 -0
- package/dist/synthesis/runStructuredSynthesisRobust.d.ts.map +1 -0
- package/dist/synthesis/runStructuredSynthesisRobust.js +303 -0
- package/dist/synthesis/runStructuredSynthesisRobust.js.map +1 -0
- package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts +19 -0
- package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts.map +1 -0
- package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js +242 -0
- package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js.map +1 -0
- package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts +171 -0
- package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts.map +1 -0
- package/dist/task-strategies/canonicalInputExecutionStrategies.js +117 -0
- package/dist/task-strategies/canonicalInputExecutionStrategies.js.map +1 -0
- package/dist/task-strategies/canonicalNarrixModes.d.ts +31 -0
- package/dist/task-strategies/canonicalNarrixModes.d.ts.map +1 -0
- package/dist/task-strategies/canonicalNarrixModes.js +35 -0
- package/dist/task-strategies/canonicalNarrixModes.js.map +1 -0
- package/dist/task-strategies/canonicalTaskStrategies.d.ts +104 -0
- package/dist/task-strategies/canonicalTaskStrategies.d.ts.map +1 -0
- package/dist/task-strategies/canonicalTaskStrategies.js +77 -0
- package/dist/task-strategies/canonicalTaskStrategies.js.map +1 -0
- package/dist/task-strategies/cataloxCatalogViews.d.ts +55 -0
- package/dist/task-strategies/cataloxCatalogViews.d.ts.map +1 -0
- package/dist/task-strategies/cataloxCatalogViews.js +65 -0
- package/dist/task-strategies/cataloxCatalogViews.js.map +1 -0
- package/dist/task-strategies/constants.d.ts +49 -0
- package/dist/task-strategies/constants.d.ts.map +1 -0
- package/dist/task-strategies/constants.js +49 -0
- package/dist/task-strategies/constants.js.map +1 -0
- package/dist/task-strategies/index.d.ts +22 -0
- package/dist/task-strategies/index.d.ts.map +1 -0
- package/dist/task-strategies/index.js +13 -0
- package/dist/task-strategies/index.js.map +1 -0
- package/dist/task-strategies/listAiTaskStrategies.d.ts +43 -0
- package/dist/task-strategies/listAiTaskStrategies.d.ts.map +1 -0
- package/dist/task-strategies/listAiTaskStrategies.js +74 -0
- package/dist/task-strategies/listAiTaskStrategies.js.map +1 -0
- package/dist/task-strategies/normalize.d.ts +7 -0
- package/dist/task-strategies/normalize.d.ts.map +1 -0
- package/dist/task-strategies/normalize.js +44 -0
- package/dist/task-strategies/normalize.js.map +1 -0
- package/dist/task-strategies/types.d.ts +37 -0
- package/dist/task-strategies/types.d.ts.map +1 -0
- package/dist/task-strategies/types.js +2 -0
- package/dist/task-strategies/types.js.map +1 -0
- package/dist/types/decision-contracts.d.ts +31 -0
- package/dist/types/decision-contracts.d.ts.map +1 -0
- package/dist/types/decision-contracts.js +23 -0
- package/dist/types/decision-contracts.js.map +1 -0
- package/dist/types/evidence-types.d.ts +108 -0
- package/dist/types/evidence-types.d.ts.map +1 -0
- package/dist/types/evidence-types.js +9 -0
- package/dist/types/evidence-types.js.map +1 -0
- package/dist/types/executionType.d.ts +9 -0
- package/dist/types/executionType.d.ts.map +1 -0
- package/dist/types/executionType.js +8 -0
- package/dist/types/executionType.js.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/llmCall.d.ts +121 -0
- package/dist/types/llmCall.d.ts.map +1 -0
- package/dist/types/llmCall.js +39 -0
- package/dist/types/llmCall.js.map +1 -0
- package/dist/types/task-configuration.d.ts +60 -0
- package/dist/types/task-configuration.d.ts.map +1 -0
- package/dist/types/task-configuration.js +3 -0
- package/dist/types/task-configuration.js.map +1 -0
- package/dist/types/task-types.d.ts +887 -0
- package/dist/types/task-types.d.ts.map +1 -0
- package/dist/types/task-types.js +21 -0
- package/dist/types/task-types.js.map +1 -0
- package/dist/utilities/runUtility.d.ts +3 -0
- package/dist/utilities/runUtility.d.ts.map +1 -0
- package/dist/utilities/runUtility.js +204 -0
- package/dist/utilities/runUtility.js.map +1 -0
- package/dist/utils/assertRequiredRunSkillCorrelation.d.ts +7 -0
- package/dist/utils/assertRequiredRunSkillCorrelation.d.ts.map +1 -0
- package/dist/utils/assertRequiredRunSkillCorrelation.js +17 -0
- package/dist/utils/assertRequiredRunSkillCorrelation.js.map +1 -0
- package/dist/utils/assertValidSmartInputConfig.d.ts +5 -0
- package/dist/utils/assertValidSmartInputConfig.d.ts.map +1 -0
- package/dist/utils/assertValidSmartInputConfig.js +71 -0
- package/dist/utils/assertValidSmartInputConfig.js.map +1 -0
- package/dist/utils/bridgeRunSkillGatewayMemory.d.ts +13 -0
- package/dist/utils/bridgeRunSkillGatewayMemory.d.ts.map +1 -0
- package/dist/utils/bridgeRunSkillGatewayMemory.js +65 -0
- package/dist/utils/bridgeRunSkillGatewayMemory.js.map +1 -0
- package/dist/utils/extractSmartInputRenderResult.d.ts +7 -0
- package/dist/utils/extractSmartInputRenderResult.d.ts.map +1 -0
- package/dist/utils/extractSmartInputRenderResult.js +30 -0
- package/dist/utils/extractSmartInputRenderResult.js.map +1 -0
- package/dist/utils/jsonPaths.d.ts +6 -0
- package/dist/utils/jsonPaths.d.ts.map +1 -0
- package/dist/utils/jsonPaths.js +32 -0
- package/dist/utils/jsonPaths.js.map +1 -0
- package/dist/utils/normalizeSmartInputConfig.d.ts +5 -0
- package/dist/utils/normalizeSmartInputConfig.d.ts.map +1 -0
- package/dist/utils/normalizeSmartInputConfig.js +30 -0
- package/dist/utils/normalizeSmartInputConfig.js.map +1 -0
- package/dist/utils/outputValidation.d.ts +19 -0
- package/dist/utils/outputValidation.d.ts.map +1 -0
- package/dist/utils/outputValidation.js +75 -0
- package/dist/utils/outputValidation.js.map +1 -0
- package/dist/utils/runTaskRequestShape.d.ts +16 -0
- package/dist/utils/runTaskRequestShape.d.ts.map +1 -0
- package/dist/utils/runTaskRequestShape.js +80 -0
- package/dist/utils/runTaskRequestShape.js.map +1 -0
- package/dist/utils/skillTemplateVariables.d.ts +20 -0
- package/dist/utils/skillTemplateVariables.d.ts.map +1 -0
- package/dist/utils/skillTemplateVariables.js +63 -0
- package/dist/utils/skillTemplateVariables.js.map +1 -0
- package/dist/utils/xynthesizedSmartInputPaths.d.ts +16 -0
- package/dist/utils/xynthesizedSmartInputPaths.d.ts.map +1 -0
- package/dist/utils/xynthesizedSmartInputPaths.js +56 -0
- package/dist/utils/xynthesizedSmartInputPaths.js.map +1 -0
- package/dist/utils/xynthesizedWrite.d.ts +10 -0
- package/dist/utils/xynthesizedWrite.d.ts.map +1 -0
- package/dist/utils/xynthesizedWrite.js +61 -0
- package/dist/utils/xynthesizedWrite.js.map +1 -0
- package/dist/validation/analyzeExpectedRunTaskInput.d.ts +41 -0
- package/dist/validation/analyzeExpectedRunTaskInput.d.ts.map +1 -0
- package/dist/validation/analyzeExpectedRunTaskInput.js +133 -0
- package/dist/validation/analyzeExpectedRunTaskInput.js.map +1 -0
- package/dist/validation/collectSmartInputValidationIssues.d.ts +6 -0
- package/dist/validation/collectSmartInputValidationIssues.d.ts.map +1 -0
- package/dist/validation/collectSmartInputValidationIssues.js +38 -0
- package/dist/validation/collectSmartInputValidationIssues.js.map +1 -0
- package/dist/validation/helpers.d.ts +15 -0
- package/dist/validation/helpers.d.ts.map +1 -0
- package/dist/validation/helpers.js +184 -0
- package/dist/validation/helpers.js.map +1 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +51 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +5 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validateRunTaskConfig.d.ts +8 -0
- package/dist/validation/validateRunTaskConfig.d.ts.map +1 -0
- package/dist/validation/validateRunTaskConfig.js +158 -0
- package/dist/validation/validateRunTaskConfig.js.map +1 -0
- package/dist/validation/validateRunTaskInvoke.d.ts +30 -0
- package/dist/validation/validateRunTaskInvoke.d.ts.map +1 -0
- package/dist/validation/validateRunTaskInvoke.js +108 -0
- package/dist/validation/validateRunTaskInvoke.js.map +1 -0
- package/documenations/activix-feature-request-identity.md +123 -0
- package/documenations/activix.md +175 -0
- package/documenations/bug-report-xynthesis-and-synthesis-call.md +217 -0
- package/documenations/core-runtime-tokens-and-strategies.md +123 -0
- package/documenations/downstream-environment.md +48 -0
- package/documenations/downstream-test-runtime-teardown-cleanup.md +73 -0
- package/documenations/examples/xynthesis-run-task-request.example.json +170 -0
- package/documenations/feature-request-ai-skills-raw-template-access.md +82 -0
- package/documenations/feature-request-athenix-core-directive.md +145 -0
- package/documenations/feature-request-athenix-token-extraction.md +124 -0
- package/documenations/funcx-catalog-hosting-checklist.md +107 -0
- package/documenations/funcx-scoping-integration-gaps.md +120 -0
- package/documenations/funcx-upstream-github-issues-draft.md +153 -0
- package/documenations/identity-metadata-contract.md +165 -0
- package/documenations/intermediate-steps.md +33 -0
- package/documenations/record-and-template-variables.md +32 -0
- package/documenations/run-task-execution-flow.md +153 -0
- package/documenations/run-task-single-run-checklist.md +109 -0
- package/documenations/schemas/README.md +40 -0
- package/documenations/schemas/openapi-3.1-components.yaml +24 -0
- package/documenations/schemas/v1/output-schema.json +55 -0
- package/documenations/schemas/v1/output-validation-result.json +41 -0
- package/documenations/schemas/v1/run-task-request.json +219 -0
- package/documenations/schemas/v1/synthesized-artifacts.json +133 -0
- package/documenations/synthesis-invocation-notes.md +26 -0
- package/documenations/synthesized-context-guide.md +84 -0
- package/documenations/task-core-and-core-aware-synthesis.md +58 -0
- package/documenations/upstream-feature-requests/ai-skills-llm-observability.md +129 -0
- package/documenations/upstream-feature-requests/xynthesis-llm-observability.md +125 -0
- package/documenations/upstream-feedback-request-shape-clarification.md +101 -0
- package/documenations/web-context-precedence.md +33 -0
- package/documenations/web-scoping-in-ai-tasks.md +503 -0
- package/documenations/xynthesis-activix-telemetry.md +28 -0
- package/documenations/xynthesis-upstream-fixes-checklist.md +71 -0
- package/package.json +92 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Feature Request: AI-Skills Raw Template Access API
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`@exellix/ai-tasks` needs a stable, public API from `@woroces/ai-skills` to retrieve **raw template content** (instructions/prompt) for a skill key, before rendering.
|
|
6
|
+
|
|
7
|
+
This is required for strict template-contract semantics (for example template core token discovery in structured synthesis).
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
In `ai-tasks` synthesis pre-step, we must inspect template tokens before rendering.
|
|
12
|
+
Current integration paths are not reliable for this:
|
|
13
|
+
|
|
14
|
+
- `skillsClient.registry.resolve/get` may return `undefined` during runtime pre-step.
|
|
15
|
+
- `diagnoseSkillContent()` logs useful diagnostics but does not return the raw content.
|
|
16
|
+
- `listAvailable()` can be empty in contexts where execution still works later.
|
|
17
|
+
|
|
18
|
+
Result: `ai-tasks` cannot deterministically read raw instructions/prompt content at pre-step time, so strict token-based validation fails even when skill content exists.
|
|
19
|
+
|
|
20
|
+
## Requested API
|
|
21
|
+
|
|
22
|
+
Expose a public method on `WorecesSkillsClient` (or equivalent public content-resolver service):
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export type TemplateSection = "instructions" | "prompt";
|
|
26
|
+
|
|
27
|
+
export interface ResolveRawTemplateResult {
|
|
28
|
+
key: string; // normalized internal key used by resolver
|
|
29
|
+
found: boolean;
|
|
30
|
+
content?: string; // raw template text (unrendered)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
resolveRawTemplate(
|
|
34
|
+
skillKey: string,
|
|
35
|
+
section: TemplateSection
|
|
36
|
+
): Promise<ResolveRawTemplateResult>;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Alternative acceptable shape:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
resolveRawTemplateByKey(key: string): Promise<string | undefined>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
as long as normalization rules are documented and stable.
|
|
46
|
+
|
|
47
|
+
## Behavioral Requirements
|
|
48
|
+
|
|
49
|
+
1. Returns **raw template text**, not rendered output.
|
|
50
|
+
2. Works consistently in the same runtime phase where `runSkill/runTask` executes.
|
|
51
|
+
3. No diagnostics-only behavior; must return programmatic result.
|
|
52
|
+
4. No side effects required (no forced diagnose/warmup calls needed by consumer).
|
|
53
|
+
5. Clear normalization rules for keys:
|
|
54
|
+
- `skills/<id>.instructions`
|
|
55
|
+
- `skills/<id>.prompt`
|
|
56
|
+
- and any officially supported aliases.
|
|
57
|
+
|
|
58
|
+
## Why This Is Needed
|
|
59
|
+
|
|
60
|
+
`ai-tasks` structured synthesis is now template-contract-driven:
|
|
61
|
+
|
|
62
|
+
- discover semantic tokens from raw template contract,
|
|
63
|
+
- validate required tokens,
|
|
64
|
+
- block execution if missing.
|
|
65
|
+
|
|
66
|
+
Without raw-template API, this validation is brittle and environment-dependent.
|
|
67
|
+
|
|
68
|
+
## Acceptance Criteria
|
|
69
|
+
|
|
70
|
+
1. Public API added to `WorecesSkillsClient` (or public content registry wrapper).
|
|
71
|
+
2. Works against local registry path and normal runtime registry.
|
|
72
|
+
3. Unit tests cover:
|
|
73
|
+
- found/missing instructions
|
|
74
|
+
- found/missing prompt
|
|
75
|
+
- normalized key mapping
|
|
76
|
+
- runtime call path parity with execution flow
|
|
77
|
+
4. Docs include examples for consumers (`ai-tasks` and other orchestrators).
|
|
78
|
+
|
|
79
|
+
## Backward Compatibility
|
|
80
|
+
|
|
81
|
+
Additive change only; no breaking behavior required.
|
|
82
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Feature Request: Athenix `core:` Directive Tokens
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Add first-class support in `@x12i/rendrix` for semantic directive tokens:
|
|
6
|
+
|
|
7
|
+
- `{{core:analysis}}`
|
|
8
|
+
- `{{core:decision}}`
|
|
9
|
+
- `{{core:question}}`
|
|
10
|
+
|
|
11
|
+
These are **not** memory paths and must not be resolved via normal object lookup.
|
|
12
|
+
|
|
13
|
+
## Why
|
|
14
|
+
|
|
15
|
+
`@exellix/ai-tasks` uses template-declared task semantics to drive structured synthesis.
|
|
16
|
+
|
|
17
|
+
Using path-like syntax such as `{{core.analysis}}` is incorrect because parser/runtime treats it as:
|
|
18
|
+
|
|
19
|
+
- lookup object `core`
|
|
20
|
+
- then property `analysis`
|
|
21
|
+
|
|
22
|
+
That conflates semantic declaration with data lookup and causes false missing-token errors.
|
|
23
|
+
|
|
24
|
+
We need directive syntax where `core:` is a command namespace, not path traversal.
|
|
25
|
+
|
|
26
|
+
## Requested Behavior
|
|
27
|
+
|
|
28
|
+
### 1) Parse `core:` as directive token (not path token)
|
|
29
|
+
|
|
30
|
+
When parser sees:
|
|
31
|
+
|
|
32
|
+
- `{{core:analysis}}`
|
|
33
|
+
|
|
34
|
+
it should emit a dedicated token type (example `kind: "core"` or `kind: "directive"` with `directive: "core"`).
|
|
35
|
+
|
|
36
|
+
It must **not** classify this as path/helper token.
|
|
37
|
+
|
|
38
|
+
### 2) Do not perform memory-path resolution for `core:` tokens
|
|
39
|
+
|
|
40
|
+
Renderer should not try to read:
|
|
41
|
+
|
|
42
|
+
- `workingMemory.core.analysis`
|
|
43
|
+
|
|
44
|
+
for `{{core:analysis}}`.
|
|
45
|
+
|
|
46
|
+
No missing-path error should be thrown due to absent `core` object.
|
|
47
|
+
|
|
48
|
+
### 3) Introspection output must expose directive value
|
|
49
|
+
|
|
50
|
+
`listTokens()` (or equivalent) should include structured fields, e.g.:
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
{
|
|
54
|
+
kind: "core",
|
|
55
|
+
raw: "core:analysis",
|
|
56
|
+
directive: "core",
|
|
57
|
+
value: "analysis",
|
|
58
|
+
start: 123,
|
|
59
|
+
end: 141
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## API / Type Additions (Conceptual)
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
export type TemplateTokenKind =
|
|
67
|
+
| "path"
|
|
68
|
+
| "helper"
|
|
69
|
+
| "block"
|
|
70
|
+
| "core"
|
|
71
|
+
| "unknown";
|
|
72
|
+
|
|
73
|
+
export interface TemplateTokenRef {
|
|
74
|
+
raw: string;
|
|
75
|
+
kind: TemplateTokenKind;
|
|
76
|
+
path?: string; // only for path-kind
|
|
77
|
+
directive?: string; // "core" for core-kind
|
|
78
|
+
value?: string; // "analysis" for core-kind
|
|
79
|
+
start: number;
|
|
80
|
+
end: number;
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Optional utility:
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
export function listDirectiveValues(
|
|
88
|
+
template: string,
|
|
89
|
+
directive: string
|
|
90
|
+
): string[];
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Rendering Semantics
|
|
94
|
+
|
|
95
|
+
For `core:` tokens:
|
|
96
|
+
|
|
97
|
+
- default render output can be empty string (`""`) unless overridden,
|
|
98
|
+
- or configurable render policy (e.g. keep literal / empty / custom formatter),
|
|
99
|
+
- but never path lookup failure.
|
|
100
|
+
|
|
101
|
+
For all other required tokens:
|
|
102
|
+
|
|
103
|
+
- existing strict behavior remains unchanged.
|
|
104
|
+
|
|
105
|
+
## Validation Rules
|
|
106
|
+
|
|
107
|
+
Parser-level validation should enforce:
|
|
108
|
+
|
|
109
|
+
- `{{core:...}}` must include non-empty value segment
|
|
110
|
+
- whitespace-trimmed value allowed (`{{core: analysis}}` -> `analysis`)
|
|
111
|
+
|
|
112
|
+
Optional strict mode (consumer-level) can validate value against allowed set.
|
|
113
|
+
|
|
114
|
+
## Backward Compatibility
|
|
115
|
+
|
|
116
|
+
- Additive change.
|
|
117
|
+
- Existing path tokens keep current behavior.
|
|
118
|
+
- No change required for templates not using `core:`.
|
|
119
|
+
|
|
120
|
+
## Acceptance Criteria
|
|
121
|
+
|
|
122
|
+
1. `listTokens("...{{core:analysis}}...")` returns token with `kind: "core"` and `value: "analysis"`.
|
|
123
|
+
2. Rendering template containing `{{core:analysis}}` does not throw missing-path errors when no `core` object exists.
|
|
124
|
+
3. Existing strict missing-token behavior for non-core path tokens is unchanged.
|
|
125
|
+
4. Unit tests added for:
|
|
126
|
+
- single and multiple core directives
|
|
127
|
+
- whitespace around colon/value
|
|
128
|
+
- invalid `{{core:}}`
|
|
129
|
+
- coexistence with normal path/helper tokens
|
|
130
|
+
|
|
131
|
+
## Example
|
|
132
|
+
|
|
133
|
+
Template:
|
|
134
|
+
|
|
135
|
+
```md
|
|
136
|
+
System contract:
|
|
137
|
+
- {{core:analysis}}
|
|
138
|
+
- {{core:decision}}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Expected:
|
|
142
|
+
|
|
143
|
+
- introspection detects two core directives: `analysis`, `decision`
|
|
144
|
+
- rendering does not require `core.analysis` or `core.decision` in memory
|
|
145
|
+
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Feature Request: Athenix Token Introspection and Selective Resolution
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`@exellix/ai-tasks` needs first-class support in Athenix parser for:
|
|
6
|
+
|
|
7
|
+
1. Inspecting templates to discover tokens before rendering.
|
|
8
|
+
2. Resolving values for a selected token set from a runtime context, without fully rendering output.
|
|
9
|
+
|
|
10
|
+
This is required to implement template-contract-driven semantics (for example task core tokens) in a deterministic, pre-render-safe way.
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
Current behavior in downstream runtime integrations can make full-template rendering unsuitable as a source of truth for semantic discovery:
|
|
15
|
+
|
|
16
|
+
- Semantic tokens may be transformed/removed by template rendering pipelines.
|
|
17
|
+
- Some integrations lazily initialize content resolvers.
|
|
18
|
+
- Full rendered text is a poor boundary for extracting contract-level meaning.
|
|
19
|
+
|
|
20
|
+
For `ai-tasks`, we must:
|
|
21
|
+
|
|
22
|
+
- discover semantic tokens from template contract (`{{...}}`) pre-render,
|
|
23
|
+
- then resolve token values against runtime memory/context,
|
|
24
|
+
- then drive synthesis and execution from those resolved semantics.
|
|
25
|
+
|
|
26
|
+
Without parser-native support, we are forced into brittle string probing.
|
|
27
|
+
|
|
28
|
+
## Requested Capability
|
|
29
|
+
|
|
30
|
+
### 1) Token Introspection API
|
|
31
|
+
|
|
32
|
+
Return token metadata from a template without rendering.
|
|
33
|
+
|
|
34
|
+
Conceptual API:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export interface TemplateTokenRef {
|
|
38
|
+
raw: string; // original token expression
|
|
39
|
+
path?: string; // normalized dot-path if applicable
|
|
40
|
+
kind: "path" | "helper" | "block" | "unknown";
|
|
41
|
+
start: number; // source offset
|
|
42
|
+
end: number; // source offset
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function listTokens(template: string, options?: {
|
|
46
|
+
includeDuplicates?: boolean; // default false
|
|
47
|
+
}): TemplateTokenRef[];
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 2) Selective Token Resolution API
|
|
51
|
+
|
|
52
|
+
Resolve only requested tokens from context, without full template rendering.
|
|
53
|
+
|
|
54
|
+
Conceptual API:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
export interface ResolveTokenValuesInput {
|
|
58
|
+
template: string;
|
|
59
|
+
context: Record<string, unknown>;
|
|
60
|
+
selectors: string[]; // e.g. ["core.*", "question", "metadata.intent"]
|
|
61
|
+
options?: {
|
|
62
|
+
strict?: boolean; // throw if selected token missing/invalid
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface ResolvedTokenValue {
|
|
67
|
+
token: string; // matched token expression
|
|
68
|
+
selector: string; // selector that matched
|
|
69
|
+
value: unknown; // resolved value
|
|
70
|
+
found: boolean;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function resolveTokenValues(
|
|
74
|
+
input: ResolveTokenValuesInput
|
|
75
|
+
): ResolvedTokenValue[];
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Behavioral Requirements
|
|
79
|
+
|
|
80
|
+
1. **Pre-render safe**: no dependency on rendered final text.
|
|
81
|
+
2. **Deterministic**: same template+context => same result.
|
|
82
|
+
3. **Selector support**: dot-path and wildcard matching (`core.*`).
|
|
83
|
+
4. **No implicit coercion surprises**: raw `unknown` values should be returned.
|
|
84
|
+
5. **Stable with missing values**: explicit `found: false` (or strict throw).
|
|
85
|
+
6. **Works with current Athenix token syntax** used across Woroces stack.
|
|
86
|
+
|
|
87
|
+
## Why This Matters
|
|
88
|
+
|
|
89
|
+
For template-driven orchestration, semantics belong to the template contract.
|
|
90
|
+
The runtime should not infer semantics from caller hints or post-render text.
|
|
91
|
+
|
|
92
|
+
Parser-native token introspection + selective resolution enables:
|
|
93
|
+
|
|
94
|
+
- reliable template core discovery,
|
|
95
|
+
- robust runtime validation,
|
|
96
|
+
- traceable synthesis inputs,
|
|
97
|
+
- less integration-specific glue logic.
|
|
98
|
+
|
|
99
|
+
## Real Integration Use Case (`@exellix/ai-tasks`)
|
|
100
|
+
|
|
101
|
+
Structured synthesis requires:
|
|
102
|
+
|
|
103
|
+
- detect template core tokens (for example `core.analysis`, `core.decision`),
|
|
104
|
+
- resolve relevant values from memory/context,
|
|
105
|
+
- block execution when required semantic tokens are absent.
|
|
106
|
+
|
|
107
|
+
This must happen before synthesis prompt rendering and must not rely on rendered output text.
|
|
108
|
+
|
|
109
|
+
## Acceptance Criteria
|
|
110
|
+
|
|
111
|
+
1. Add parser APIs (or equivalent methods) for token listing and selective token value resolution.
|
|
112
|
+
2. Include docs with examples for token selectors and missing-token handling.
|
|
113
|
+
3. Add tests for:
|
|
114
|
+
- nested paths,
|
|
115
|
+
- wildcard selectors,
|
|
116
|
+
- missing tokens in strict/non-strict mode,
|
|
117
|
+
- duplicate token references,
|
|
118
|
+
- mixed token kinds.
|
|
119
|
+
4. Confirm compatibility with existing template render pipeline.
|
|
120
|
+
|
|
121
|
+
## Notes
|
|
122
|
+
|
|
123
|
+
- This request is additive; it should not break existing `render()` usage.
|
|
124
|
+
- If preferred, these capabilities can be exposed under a utility namespace instead of top-level exports.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# FuncX catalog / hosting — checklist for `@exellix/ai-tasks` (+ optional web-scope)
|
|
2
|
+
|
|
3
|
+
`runTask()` invokes **`run(functionId, payload, { client })`** from **`@x12i/funcx/functions`** for planner and optimizer rows. **Nothing in ai-tasks registers those functions** — your **FuncX library / Catalox content / resolver** must expose them so **`run()`** resolves at runtime.
|
|
4
|
+
|
|
5
|
+
Use this as your deployment checklist. Wire contracts (envelope + adapters) are summarized in [`funcx-scoping-integration-gaps.md`](./funcx-scoping-integration-gaps.md) §6.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Required function IDs (MAIN wrappers)
|
|
10
|
+
|
|
11
|
+
| Capability | Canonical `functionId` | Router hyphen alias (often supported) |
|
|
12
|
+
|------------|------------------------|---------------------------------------|
|
|
13
|
+
| Planner | `execution/plan` | `execution-plan` |
|
|
14
|
+
| Optimizer | `execution/evaluate-result` | `execution-evaluate-result` |
|
|
15
|
+
|
|
16
|
+
Constants in this repo: [`src/execution-strategies/constants.ts`](../src/execution-strategies/constants.ts) — `FUNCX_EXECUTION_PLAN_FUNCTION_ID`, `FUNCX_EXECUTION_EVALUATE_RESULT_FUNCTION_ID`.
|
|
17
|
+
|
|
18
|
+
## 2. Optional function ID (web-scope via FuncX)
|
|
19
|
+
|
|
20
|
+
| Capability | Canonical `functionId` |
|
|
21
|
+
|------------|----------------------|
|
|
22
|
+
| Research / web-scope questions | `research/plan-questions` |
|
|
23
|
+
|
|
24
|
+
Used only when callers run **`runPlanWebScopeQuestions({ backend: "funcx", … })`** or when another host calls **`run()`** with the payload from **`buildResearchPlanQuestionsPayload`** (see [`genericExecutionFuncxEnvelope.ts`](../src/execution-strategies/genericExecutionFuncxEnvelope.ts)).
|
|
25
|
+
|
|
26
|
+
Constant: **`FUNCX_RESEARCH_PLAN_QUESTIONS_FUNCTION_ID`**.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Request envelope (must match)
|
|
31
|
+
|
|
32
|
+
All three use the **generic execution envelope** (see **`GenericExecutionEnvelope`** and **`genericExecutionEnvelopeJsonSchema`** exported from **`@x12i/funcx/functions`**):
|
|
33
|
+
|
|
34
|
+
- **`goal`** — string (required at runtime for built-ins).
|
|
35
|
+
- **`input`**, **`context`**, **`result`** (optimizer only) — opaque JSON-safe values.
|
|
36
|
+
- **`args`** — behavior knobs; planner/optimizer omit **`functionId`** from `args` on the wire (transport uses top-level id).
|
|
37
|
+
- **`attribution`** — correlation; implementations should merge into nested **`ask()`** via **`buildAskAttribution`** / **`AskOptions.attribution`** (see FuncX ≥3.8.2).
|
|
38
|
+
|
|
39
|
+
**Planner/optimizer payloads** are built in-repo by **`buildPlannerGenericPayload`** / **`buildOptimizerGenericPayload`**.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 4. Response shape (what ai-tasks parses)
|
|
44
|
+
|
|
45
|
+
After **`run()`**, JSON is normalized with **`getRunJsonResult`** (see **`unwrapFuncxRunValue`** in ai-tasks). Then:
|
|
46
|
+
|
|
47
|
+
- Planner → **`adaptExecutionPlanResult`** → merged into `instructions` / `prompt` / `variables` / `templateTokens`.
|
|
48
|
+
- Optimizer → **`adaptEvaluateResultResponse`** → `satisfied`, `feedback`, `variables`, `templateTokens`.
|
|
49
|
+
|
|
50
|
+
Your FuncX implementations must return **one JSON object** compatible with those adapters (see §6 tables in [`funcx-scoping-integration-gaps.md`](./funcx-scoping-integration-gaps.md)).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 5. Where hosting work happens (upstream)
|
|
55
|
+
|
|
56
|
+
Authoritative procedures live in the **FuncX** repository and your **Catalox / content** pipeline — not in ai-tasks.
|
|
57
|
+
|
|
58
|
+
| Resource | Purpose |
|
|
59
|
+
|----------|---------|
|
|
60
|
+
| [`https://github.com/x12i/funcx`](https://github.com/x12i/funcx) | Source of truth for **`run()`**, content layout, sync scripts, tests for generic execution/research. |
|
|
61
|
+
| **`@x12i/funcx` npm** (≥ **3.8.2**) | **`run`**, **`getRunJsonResult`**, **`GenericExecutionEnvelope`**, **`genericExecutionEnvelopeJsonSchema`**, **`buildAskAttribution`**. |
|
|
62
|
+
| FuncX **package scripts** (maintainers) | Examples: `content:fill-catalox`, `content:sync`, `content:index` — run in **your** CI/deploy after cloning FuncX with proper `.env` / Catalox credentials. |
|
|
63
|
+
|
|
64
|
+
**Your checklist:**
|
|
65
|
+
|
|
66
|
+
1. Confirm the three **function definitions** (instructions + JSON schema + routing id) exist in the FuncX **content tree** / catalog your resolver reads.
|
|
67
|
+
2. Run your org’s **content sync / index** so **`run("execution/plan", …)`** resolves in **dev, staging, prod** (same steps you use for other FuncX functions).
|
|
68
|
+
3. Configure **API keys / OpenRouter / FuncX client** where **`createClient({ backend: "openrouter" })`** is used (same as other FuncX calls from Node).
|
|
69
|
+
4. Smoke-test **`run()`** once per environment with a minimal payload (see §6).
|
|
70
|
+
5. If you use **web-scope FuncX**, register **`research/plan-questions`** the same way.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 6. Minimal verification (after deploy)
|
|
75
|
+
|
|
76
|
+
From any Node context that uses the same **`@x12i/funcx`** client options as production:
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { createClient } from "@x12i/funcx";
|
|
80
|
+
import { run, getRunJsonResult } from "@x12i/funcx/functions";
|
|
81
|
+
|
|
82
|
+
const client = createClient({ backend: "openrouter" });
|
|
83
|
+
const raw = await run(
|
|
84
|
+
"execution/plan",
|
|
85
|
+
{
|
|
86
|
+
goal: "Smoke test execution/plan registration.",
|
|
87
|
+
input: {},
|
|
88
|
+
context: { skillKey: "smoke.skill" },
|
|
89
|
+
attribution: { tags: { caller: "smoke-test" } },
|
|
90
|
+
},
|
|
91
|
+
{ client }
|
|
92
|
+
);
|
|
93
|
+
const json = getRunJsonResult(raw);
|
|
94
|
+
console.log("execution/plan ok:", json && typeof json === "object");
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Repeat with **`execution/evaluate-result`** (include a dummy **`result`** object) and, if needed, **`research/plan-questions`**.
|
|
98
|
+
|
|
99
|
+
If **`run()`** throws **unknown function** / **404** / resolver errors, the **catalog or index** for that environment is incomplete — fix hosting before relying on **`runTask`** with planners or optimizers.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 7. Related docs in this repo
|
|
104
|
+
|
|
105
|
+
- [`RUNTASK_REQUEST.md`](../RUNTASK_REQUEST.md) — `executionStrategies`, FuncX behavior.
|
|
106
|
+
- [`BREAKING-CHANGES.md`](../BREAKING-CHANGES.md) — default ids + **`@x12i/funcx` ≥ 3.8.2**.
|
|
107
|
+
- [`funcx-scoping-integration-gaps.md`](./funcx-scoping-integration-gaps.md) — FR tracker + contracts.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# FuncX — gaps and feature requests (from `@exellix/ai-tasks`)
|
|
2
|
+
|
|
3
|
+
This package routes **AI scoping** (and any other callers of `runLlmTextCall`) through **FuncX** (`@x12i/funcx`: `createClient` + `Client.ask`). **Audit / polish post-steps** and **synthesized-context** synthesis use **`@exellix/xynthesis`** (`executeXynthesisAction` / structured gateway), not direct FuncX in those paths. The items below are **not** workarounded in ai-tasks: they are tracked here for upstream improvement.
|
|
4
|
+
|
|
5
|
+
**Note:** `jobId` / `agentId` are not passed on the **scoping** `ask()` path because the narrow helper used here does not yet thread them through `AskOptions`. Post-step audit/polish pass `jobId` / `agentId` into xynthesis where supported. Task identity remains on `RunTaskRequest` for Activix and other orchestration layers.
|
|
6
|
+
|
|
7
|
+
## 1. Correlation: job / agent / task identity on `ask()`
|
|
8
|
+
|
|
9
|
+
**Need:** Every internal call used to carry stable `jobId` and `agentId` (and sometimes skill context) so logs and activity backends can tie completions to a task run.
|
|
10
|
+
|
|
11
|
+
**Update (@x12i/funcx ≥ 3.6):** `AttributionContext` now includes optional **`jobId`**, **`taskId`**, and **`agentId`** (alongside `functionId`, `projectId`, `traceId`, `tags`). OpenRouter attribution can use `formatOpenRouterUserField(attribution)` where applicable.
|
|
12
|
+
|
|
13
|
+
**Remaining gap for other call sites:** Not every ai-tasks code path sets these fields on `ask()` yet (e.g. narrow scoping helpers may still omit them). Prefer threading identity from `RunTaskRequest` into `AskOptions.attribution` wherever FuncX is invoked directly.
|
|
14
|
+
|
|
15
|
+
## 2. High-level “one completion” helper
|
|
16
|
+
|
|
17
|
+
**Need:** Callers want a single operation: system prompt + user prompt + optional model + timeout → text (and usage), with sensible defaults when `model` is omitted (preset / env).
|
|
18
|
+
|
|
19
|
+
**Update (@x12i/funcx ≥ 3.6):** **`askOnce`** is exported from the main package (uses `resolveOptionsFromMode` / presets when `model` is omitted). Prefer it for new call sites instead of hand-rolling `AskOptions` when a single completion is enough.
|
|
20
|
+
|
|
21
|
+
## 3. System-only prompts (empty user message)
|
|
22
|
+
|
|
23
|
+
**Need:** Some flows put the entire instruction in the system role and pass an empty or minimal user message (e.g. synthesis-style prompts that historically used `workingMemory.input: ""`).
|
|
24
|
+
|
|
25
|
+
**Update (@x12i/funcx ≥ 3.6):** **`askOnce`** documents using a minimal placeholder user message (e.g. zero-width space) when the entire instruction lives in **`system`** — follow that pattern for portability.
|
|
26
|
+
|
|
27
|
+
**Remaining:** Confirm per-backend behavior when callers bypass `askOnce` and send raw empty user content.
|
|
28
|
+
|
|
29
|
+
## 4. Mock / test ergonomics
|
|
30
|
+
|
|
31
|
+
**Need:** Unit tests inject a fake LLM that returns deterministic `AskResult` without constructing a real client.
|
|
32
|
+
|
|
33
|
+
**Update (@x12i/funcx ≥ 3.6):** **`createAskMock`**, **`makeAskResult`**, and **`makeUsage`** are exported from `@x12i/funcx` for lightweight doubles.
|
|
34
|
+
|
|
35
|
+
## 5. Structured usage / cost on `AskResult`
|
|
36
|
+
|
|
37
|
+
**Need:** Downstream code sometimes surfaced gateway-style `activityId`, cost, or raw provider fields for observability.
|
|
38
|
+
|
|
39
|
+
**Today:** `AskResult` exposes `text`, `usage`, `model?`, `raw?`. Fine-grained cost semantics live in `usage` / `raw` depending on provider.
|
|
40
|
+
|
|
41
|
+
**Ask:** If not already stable, document how OpenRouter cost and IDs appear on `AskResult.raw` / `usage` so orchestrators can map to their activity model without adapter-specific parsing.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 6. Execution-strategy FuncX functions (`runTask` MAIN wrappers) — **FR tracker**
|
|
46
|
+
|
|
47
|
+
**Hosting checklist (catalog / prod):** [`funcx-catalog-hosting-checklist.md`](./funcx-catalog-hosting-checklist.md) — ensure **`execution/plan`**, **`execution/evaluate-result`**, and optionally **`research/plan-questions`** are registered where **`run()`** resolves.
|
|
48
|
+
|
|
49
|
+
**How FuncX fits:** Each capability is a **`functionId`** (e.g. **`execution/plan`**). `@exellix/ai-tasks` does **not** embed prompts for these steps; it calls **`run(functionId, payload, { client })`** from **`@x12i/funcx/functions`**. Payloads use a **single generic envelope** (`goal`, `input`, `context`, `result?`, `args`, `attribution`). Responses are adapted in-repo ([`genericExecutionFuncxEnvelope.ts`](../src/execution-strategies/genericExecutionFuncxEnvelope.ts)) into gateway merge types.
|
|
50
|
+
|
|
51
|
+
**Call-site constants (defaults):** [`src/execution-strategies/constants.ts`](../src/execution-strategies/constants.ts) — **`FUNCX_EXECUTION_PLAN_FUNCTION_ID`**, **`FUNCX_EXECUTION_EVALUATE_RESULT_FUNCTION_ID`**, **`FUNCX_RESEARCH_PLAN_QUESTIONS_FUNCTION_ID`**. Per-invocation override: **`executionStrategies[].args.functionId`** only when the target accepts the **same** generic envelope.
|
|
52
|
+
|
|
53
|
+
**Consumer:** [`runFuncxExecutionStrategy.ts`](../src/execution-strategies/runFuncxExecutionStrategy.ts) (`runPlannerFuncx`, `runOptimizerFuncx`).
|
|
54
|
+
|
|
55
|
+
| FR id | Topic | Status |
|
|
56
|
+
|-------|--------|--------|
|
|
57
|
+
| **FR-EXEC-1** | FuncX **`execution/plan`** — generic execution planning | **Contract:** generic envelope in + structured plan / instructions / steps out; ai-tasks maps into `instructions` / `prompt` / `variables` / `templateTokens` |
|
|
58
|
+
| **FR-EXEC-2** | FuncX **`execution/evaluate-result`** — MAIN output judgment | **Contract:** generic envelope + **`result`** (MAIN summary); ai-tasks maps `suggestedChanges` / `issues` into feedback / `variables.optimizerSuggestedChanges` |
|
|
59
|
+
| **FR-EXEC-3** | Correlation on nested **`ask()`** | **`attribution`** on outbound envelope includes **`runId` / `subjectId` / `actorId`** and **`tags`** (`jobId`, `taskId`, `agentId`, `caller: ai-tasks`). FuncX implementations should forward into **`AskOptions.attribution`**. |
|
|
60
|
+
| **FR-EXEC-4** | FuncX **`research/plan-questions`** — web-scope / research questions | **Wiring:** `runPlanWebScopeQuestions({ backend: "funcx" })` or hosts call **`run()`** directly with the same envelope built by **`buildResearchPlanQuestionsPayload`**. |
|
|
61
|
+
|
|
62
|
+
**Tests (no live FuncX):** **`setFuncxExecutionStrategyInvoker()`** stubs planner/optimizer **`run()`** calls.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### FR-EXEC-1 — `execution/plan` (planner)
|
|
67
|
+
|
|
68
|
+
**Purpose:** Before the **first** MAIN `runSkill` call, refine how the skill runs. **`runTask` invokes this at most once per planner row** (sorted by `priority`).
|
|
69
|
+
|
|
70
|
+
**Function id (canonical):** `execution/plan` (hyphen alias: `execution-plan` accepted by FuncX router).
|
|
71
|
+
|
|
72
|
+
**Input — generic envelope** (second argument to **`run()`**). Built by **`buildPlannerGenericPayload`**: **`goal`** from skill context; **`input`** = task **`input`**; **`context`** = memories, **`skillKey`**, ids, **`variables`**, etc.; **`args`** = strategy row **`args`** minus **`functionId`**; **`attribution`** from correlation ids.
|
|
73
|
+
|
|
74
|
+
**FuncX output shape** (indicative): `plan`, `instructions`, `steps[]`, `assumptions[]`, `missingInputs[]`, optional **`prompt` / `variables` / `templateTokens`** or the same under **`metadata`**. **`adaptExecutionPlanResult`** prefers **`instructions`**, then **`plan`**, then rendered **`steps`**, and appends assumptions / missing-input lists into **`instructions`** when present.
|
|
75
|
+
|
|
76
|
+
**Behavior requirements:** Single JSON object; must **not** execute MAIN; forward **`attribution`** on internal **`ask()`** calls.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### FR-EXEC-2 — `execution/evaluate-result` (optimizer)
|
|
81
|
+
|
|
82
|
+
**Purpose:** After **each** MAIN attempt, judge **`result`** and optionally suggest changes. **`runTask` uses only the first optimizer row** after sort.
|
|
83
|
+
|
|
84
|
+
**Function id (canonical):** `execution/evaluate-result` (hyphen: `execution-evaluate-result`).
|
|
85
|
+
|
|
86
|
+
**Input:** Same envelope as FR-EXEC-1 plus **`result`** = bounded MAIN summary (`rawText` ~12k, **`parsed`**, **`metadata`** summarized). **`args.iterationIndex`** is zero-based.
|
|
87
|
+
|
|
88
|
+
**Output:** **`satisfied`** (boolean), **`feedback`**, **`suggestedChanges[]`**, **`issues[]`**, optional **`variables` / `templateTokens` / `metadata`**. **`adaptEvaluateResultResponse`** merges suggested changes and issues into **`feedback`** and sets **`variables.optimizerSuggestedChanges`** when useful.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### FR-EXEC-3 — Correlation on `ask()` for execution-strategy functions
|
|
93
|
+
|
|
94
|
+
**Need:** **`jobId`**, **`taskId`**, **`agentId`** on every internal LLM call for planner/optimizer/research planning.
|
|
95
|
+
|
|
96
|
+
**Today (@exellix/ai-tasks):** Outbound payloads include **`attribution`** derived from **`buildExecutionStrategyRequestPayload`** fields. FuncX function implementations should copy **`attribution`** (and/or **`context`**) into **`AskOptions.attribution`** for nested calls.
|
|
97
|
+
|
|
98
|
+
**Overrides:** Custom **`args.functionId`** targets must honor the **same** envelope and attribution expectations.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### FR-EXEC-4 — `research/plan-questions` (web-scope / research question planner)
|
|
103
|
+
|
|
104
|
+
**Purpose:** Produce **structured research / web-scope questions** for Studio (**Web scoping mode = AI-driven**). Downstream sets **`RunTaskRequest.narrix.webScopeQuestions`** with `source: "ai-driven"` (see [`documenations/web-scoping-in-ai-tasks.md`](./web-scoping-in-ai-tasks.md)).
|
|
105
|
+
|
|
106
|
+
**Function id (canonical):** `research/plan-questions` (constant **`FUNCX_RESEARCH_PLAN_QUESTIONS_FUNCTION_ID`**).
|
|
107
|
+
|
|
108
|
+
**Runtime (@exellix/ai-tasks):** Default **`runPlanWebScopeQuestions`** uses **`backend: "xynthesis"`** (prompt + **`parseAndValidatePlanWebScopeQuestionsOutput`**). Set **`backend: "funcx"`** for **`run()`** with **`buildResearchPlanQuestionsPayload`** and **`adaptResearchPlanQuestionsResult`**. Tests may use **`setResearchPlanQuestionsFuncxInvoker`**.
|
|
109
|
+
|
|
110
|
+
**Input — generic envelope:** **`goal`** = node question; **`input`** = `{ nodeInput, rawRecord? }`; **`context`** = memory / xynthesized summaries; **`args`** includes **`maxQuestions`**, **`sourceType: "web"`**, **`allowSkip: true`**.
|
|
111
|
+
|
|
112
|
+
**Output — FuncX generic:** `questions[]` with **`question`**, optional **`reason`**, etc. Ai-tasks adapts to **`PlanWebScopeQuestionsOutput`** (stable **`source: "ai-driven"`**, generated **`id`** when missing).
|
|
113
|
+
|
|
114
|
+
**Correlation (FR-EXEC-3):** Forward **`attribution`** into internal **`ask()`** like other generic functions.
|
|
115
|
+
|
|
116
|
+
**Tests:** Xynthesis: **`setSynthesisInvoker`**. FuncX: **`setResearchPlanQuestionsFuncxInvoker`** (`test/planWebScopeQuestions/*.test.ts`).
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
**Version note:** Generic execution-strategy **`run()`** payloads, **`getRunJsonResult`**, and **`attribution`** align with **@x12i/funcx** **≥ 3.8.2** recommended. **@exellix/xynthesis** may still use FuncX under the hood on other paths; §1 notes remaining scoping gaps.
|