TypeScript icon, indicating that this package has built-in type declarations

    3.2.3 • Public • Published

    Queries Scheduler

    Place queries on a timeline.

    Build Status Maintainability Test Coverage code style: prettier semantic-release Commitizen friendly Greenkeeper badge npm version

    workflow: queries -> schedule


    • once material is placed, don't replace it. Causes loops. Temporary query instead. (Current behavior is different: potentials and materials streams are re-compute after each mutation and we check for stability. Cause issue: updatePP isn't accurate. Stick to first strategy)


    • place potentials with most pressure.
    • When all possible queries are placed and some potentials are left, throw exception. New provider query is pushed (send needer id so provider query can have a direct dependency). Can now be placed thanks to user state potential.
    • Temp Queries: fixes from agent feedback, placeholder, content with transforms.
    • two ways to provide: provider depends on needed task; needed task depends on provider.
    • tasks with zero potential have pressure of -1 instead of +Infinity.
    • task potential = intersection of query potential (internal constraints) + query dependencies + user state potential + materials.
    • impossible to place (material time) => throw exception. (conflict)
    • query that occurs x time before/after state: Link to material that update state -> link field, queries-scheduler module.
    • How to allow link to a material from another agent ? Could be after the second phase, when agent receive queries's context. (Link to an ID)
    • Only one exception is permitted: conflict error that needs user. Others are caught (from userstate) with conflict-resolver
    • providers handle is complex. Use priority list. Can cause side-effect conflict. How to go back to the source of conflict ? How to switch from 1st priority to another ? Simulation with satisfaction threshold for all materials ? heavy cost (recursive and exponential, due to provider sub-dependance to other providers).
    • Agents -> queries ; conflict-resolver (error): query -> agent ; manage agents as a stream

    when the stream complete without error, it should be the final timeline.

    schedule (tasks (materials)):

    • tasks (potentials)

    tasks (potentials):

    • queries
    • tasks (potentials)
    • tasks (materials)
    • user state (potentials)
    • user state (materials)

    tasks with needs:

    • tasks (materials)
    • agent service


    1. agent queries
    2. user interaction
    3. [1, 2] queries
    4. [3, 5] queries with temp
    5. [4, 5, 7] tasks (potential) - use user-state function on tasks (potential & material)
    6. [5] tasks (material)
    7. [7] needs and fixes, placeholder fill or validate

    a. Catch errors from [7] => generate new queries at [1].

    Module: [1] queries-fn [2, 3] main app [4, 5, 7] queries-scheduler userstate-manager [a] conflic-resolver [b] agent-relay

    Module a: if provider is impossible to place, either there is no need for it, or there is a conflict. Use user-state to determine. userstate-manager: query + (potential/material) with needs + config + base needs => ranges of possibilities

    Queries restrictions:

    • provider (insert/update with 'wait: true' can't specify start/end) -> will prevent correct material placement order.


    npm i @autoschedule/queries-scheduler

    DownloadsWeekly Downloads






    Unpacked Size

    100 kB

    Total Files


    Last publish


    • draeken