@vibesdotdev/workboard 0.0.0-stage → 1.0.0-rc.1
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/LICENSE +18 -0
- package/README.md +31 -2
- package/dist/agent-actions.d.ts +19 -0
- package/dist/agent-actions.d.ts.map +1 -0
- package/dist/agent-actions.js +93 -0
- package/dist/agent-actions.js.map +1 -0
- package/dist/attention/headless-attention.host.d.ts +78 -0
- package/dist/attention/headless-attention.host.d.ts.map +1 -0
- package/dist/attention/headless-attention.host.js +42 -0
- package/dist/attention/headless-attention.host.js.map +1 -0
- package/dist/attention/index.d.ts +2 -0
- package/dist/attention/index.d.ts.map +1 -0
- package/dist/attention/index.js +2 -0
- package/dist/attention/index.js.map +1 -0
- package/dist/cli/marshal/components/index.d.ts +12 -0
- package/dist/cli/marshal/components/index.d.ts.map +1 -0
- package/dist/cli/marshal/components/index.js +12 -0
- package/dist/cli/marshal/components/index.js.map +1 -0
- package/dist/cli/marshal/components/marshal-progress.d.ts +52 -0
- package/dist/cli/marshal/components/marshal-progress.d.ts.map +1 -0
- package/dist/cli/marshal/components/marshal-progress.js +182 -0
- package/dist/cli/marshal/components/marshal-progress.js.map +1 -0
- package/dist/cli/marshal/components/marshal-prompt.d.ts +72 -0
- package/dist/cli/marshal/components/marshal-prompt.d.ts.map +1 -0
- package/dist/cli/marshal/components/marshal-prompt.js +256 -0
- package/dist/cli/marshal/components/marshal-prompt.js.map +1 -0
- package/dist/cli/marshal/components/marshal-widgets.d.ts +73 -0
- package/dist/cli/marshal/components/marshal-widgets.d.ts.map +1 -0
- package/dist/cli/marshal/components/marshal-widgets.js +283 -0
- package/dist/cli/marshal/components/marshal-widgets.js.map +1 -0
- package/dist/cli/marshal/index.d.ts +2 -0
- package/dist/cli/marshal/index.d.ts.map +1 -0
- package/dist/cli/marshal/index.js +2 -0
- package/dist/cli/marshal/index.js.map +1 -0
- package/dist/client/helper.d.ts +12 -0
- package/dist/client/helper.d.ts.map +1 -0
- package/dist/client/helper.js +13 -0
- package/dist/client/helper.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/workboard-client.d.ts +283 -0
- package/dist/client/workboard-client.d.ts.map +1 -0
- package/dist/client/workboard-client.js +550 -0
- package/dist/client/workboard-client.js.map +1 -0
- package/dist/config/workboard.config.descriptor.d.ts +38 -0
- package/dist/config/workboard.config.descriptor.d.ts.map +1 -0
- package/dist/config/workboard.config.descriptor.js +30 -0
- package/dist/config/workboard.config.descriptor.js.map +1 -0
- package/dist/docs/workboard.docs.descriptor.d.ts +4 -0
- package/dist/docs/workboard.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/workboard.docs.descriptor.js +85 -0
- package/dist/docs/workboard.docs.descriptor.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/marshal/agent/descriptor.d.ts +66 -0
- package/dist/marshal/agent/descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/descriptor.js +144 -0
- package/dist/marshal/agent/descriptor.js.map +1 -0
- package/dist/marshal/agent/index.d.ts +10 -0
- package/dist/marshal/agent/index.d.ts.map +1 -0
- package/dist/marshal/agent/index.js +10 -0
- package/dist/marshal/agent/index.js.map +1 -0
- package/dist/marshal/agent/marshal-agent.d.ts +42 -0
- package/dist/marshal/agent/marshal-agent.d.ts.map +1 -0
- package/dist/marshal/agent/marshal-agent.js +121 -0
- package/dist/marshal/agent/marshal-agent.js.map +1 -0
- package/dist/marshal/agent/marshal.agent.descriptor.d.ts +9 -0
- package/dist/marshal/agent/marshal.agent.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/marshal.agent.descriptor.js +9 -0
- package/dist/marshal/agent/marshal.agent.descriptor.js.map +1 -0
- package/dist/marshal/agent/profile.d.ts +16 -0
- package/dist/marshal/agent/profile.d.ts.map +1 -0
- package/dist/marshal/agent/profile.js +55 -0
- package/dist/marshal/agent/profile.js.map +1 -0
- package/dist/marshal/agent/prompts/cloud-system.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/cloud-system.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/cloud-system.prompt.descriptor.js +85 -0
- package/dist/marshal/agent/prompts/cloud-system.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/prompts/index.d.ts +113 -0
- package/dist/marshal/agent/prompts/index.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/index.js +16 -0
- package/dist/marshal/agent/prompts/index.js.map +1 -0
- package/dist/marshal/agent/prompts/personality.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/personality.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/personality.prompt.descriptor.js +34 -0
- package/dist/marshal/agent/prompts/personality.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/prompts/setup-issue.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/setup-issue.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/setup-issue.prompt.descriptor.js +68 -0
- package/dist/marshal/agent/prompts/setup-issue.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/prompts/setup-wizard.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/setup-wizard.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/setup-wizard.prompt.descriptor.js +38 -0
- package/dist/marshal/agent/prompts/setup-wizard.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/prompts/surface.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/surface.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/surface.prompt.descriptor.js +39 -0
- package/dist/marshal/agent/prompts/surface.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/prompts/system.prompt.descriptor.d.ts +113 -0
- package/dist/marshal/agent/prompts/system.prompt.descriptor.d.ts.map +1 -0
- package/dist/marshal/agent/prompts/system.prompt.descriptor.js +63 -0
- package/dist/marshal/agent/prompts/system.prompt.descriptor.js.map +1 -0
- package/dist/marshal/agent/system-prompt.d.ts +34 -0
- package/dist/marshal/agent/system-prompt.d.ts.map +1 -0
- package/dist/marshal/agent/system-prompt.js +130 -0
- package/dist/marshal/agent/system-prompt.js.map +1 -0
- package/dist/marshal/capabilities.d.ts +55 -0
- package/dist/marshal/capabilities.d.ts.map +1 -0
- package/dist/marshal/capabilities.js +146 -0
- package/dist/marshal/capabilities.js.map +1 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.descriptor.d.ts +4 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.descriptor.d.ts.map +1 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.descriptor.js +18 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.descriptor.js.map +1 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.impl.consumer.d.ts +16 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.impl.consumer.d.ts.map +1 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.impl.consumer.js +39 -0
- package/dist/marshal/cli/fleet.marshal-presence.heartbeat.command.impl.consumer.js.map +1 -0
- package/dist/marshal/cli/plugin.d.ts +3 -0
- package/dist/marshal/cli/plugin.d.ts.map +1 -0
- package/dist/marshal/cli/plugin.js +9 -0
- package/dist/marshal/cli/plugin.js.map +1 -0
- package/dist/marshal/client/helper.d.ts +24 -0
- package/dist/marshal/client/helper.d.ts.map +1 -0
- package/dist/marshal/client/helper.js +36 -0
- package/dist/marshal/client/helper.js.map +1 -0
- package/dist/marshal/client/index.d.ts +7 -0
- package/dist/marshal/client/index.d.ts.map +1 -0
- package/dist/marshal/client/index.js +6 -0
- package/dist/marshal/client/index.js.map +1 -0
- package/dist/marshal/client/marshal-api-client.impl.d.ts +22 -0
- package/dist/marshal/client/marshal-api-client.impl.d.ts.map +1 -0
- package/dist/marshal/client/marshal-api-client.impl.js +47 -0
- package/dist/marshal/client/marshal-api-client.impl.js.map +1 -0
- package/dist/marshal/client/marshal-client.runtime.d.ts +124 -0
- package/dist/marshal/client/marshal-client.runtime.d.ts.map +1 -0
- package/dist/marshal/client/marshal-client.runtime.js +216 -0
- package/dist/marshal/client/marshal-client.runtime.js.map +1 -0
- package/dist/marshal/cloud.plugin.d.ts +2 -0
- package/dist/marshal/cloud.plugin.d.ts.map +1 -0
- package/dist/marshal/cloud.plugin.js +2 -0
- package/dist/marshal/cloud.plugin.js.map +1 -0
- package/dist/marshal/components/index.d.ts +8 -0
- package/dist/marshal/components/index.d.ts.map +1 -0
- package/dist/marshal/components/index.js +15 -0
- package/dist/marshal/components/index.js.map +1 -0
- package/dist/marshal/config/manifest.d.ts +8608 -0
- package/dist/marshal/config/manifest.d.ts.map +1 -0
- package/dist/marshal/config/manifest.js +115 -0
- package/dist/marshal/config/manifest.js.map +1 -0
- package/dist/marshal/consumer.d.ts +7 -0
- package/dist/marshal/consumer.d.ts.map +1 -0
- package/dist/marshal/consumer.js +9 -0
- package/dist/marshal/consumer.js.map +1 -0
- package/dist/marshal/consumer.plugin.d.ts +2 -0
- package/dist/marshal/consumer.plugin.d.ts.map +1 -0
- package/dist/marshal/consumer.plugin.js +2 -0
- package/dist/marshal/consumer.plugin.js.map +1 -0
- package/dist/marshal/context/agents-context-kind.d.ts +9 -0
- package/dist/marshal/context/agents-context-kind.d.ts.map +1 -0
- package/dist/marshal/context/agents-context-kind.js +17 -0
- package/dist/marshal/context/agents-context-kind.js.map +1 -0
- package/dist/marshal/context/marshal.context-provider.descriptor.d.ts +26 -0
- package/dist/marshal/context/marshal.context-provider.descriptor.d.ts.map +1 -0
- package/dist/marshal/context/marshal.context-provider.descriptor.js +10 -0
- package/dist/marshal/context/marshal.context-provider.descriptor.js.map +1 -0
- package/dist/marshal/context/marshal.context-provider.impl.d.ts +4 -0
- package/dist/marshal/context/marshal.context-provider.impl.d.ts.map +1 -0
- package/dist/marshal/context/marshal.context-provider.impl.js +42 -0
- package/dist/marshal/context/marshal.context-provider.impl.js.map +1 -0
- package/dist/marshal/index.d.ts +29 -0
- package/dist/marshal/index.d.ts.map +1 -0
- package/dist/marshal/index.js +34 -0
- package/dist/marshal/index.js.map +1 -0
- package/dist/marshal/marshal.api-client.descriptor.d.ts +9 -0
- package/dist/marshal/marshal.api-client.descriptor.d.ts.map +1 -0
- package/dist/marshal/marshal.api-client.descriptor.js +19 -0
- package/dist/marshal/marshal.api-client.descriptor.js.map +1 -0
- package/dist/marshal/marshal.consumer.plugin.d.ts +4 -0
- package/dist/marshal/marshal.consumer.plugin.d.ts.map +1 -0
- package/dist/marshal/marshal.consumer.plugin.js +18 -0
- package/dist/marshal/marshal.consumer.plugin.js.map +1 -0
- package/dist/marshal/marshal.plugin.d.ts +10 -0
- package/dist/marshal/marshal.plugin.d.ts.map +1 -0
- package/dist/marshal/marshal.plugin.js +55 -0
- package/dist/marshal/marshal.plugin.js.map +1 -0
- package/dist/marshal/marshal.runtime-client.descriptor.d.ts +9 -0
- package/dist/marshal/marshal.runtime-client.descriptor.d.ts.map +1 -0
- package/dist/marshal/marshal.runtime-client.descriptor.js +19 -0
- package/dist/marshal/marshal.runtime-client.descriptor.js.map +1 -0
- package/dist/marshal/plugin.d.ts +2 -0
- package/dist/marshal/plugin.d.ts.map +1 -0
- package/dist/marshal/plugin.js +2 -0
- package/dist/marshal/plugin.js.map +1 -0
- package/dist/marshal/presence/heartbeat.d.ts +64 -0
- package/dist/marshal/presence/heartbeat.d.ts.map +1 -0
- package/dist/marshal/presence/heartbeat.js +169 -0
- package/dist/marshal/presence/heartbeat.js.map +1 -0
- package/dist/marshal/presence/index.d.ts +2 -0
- package/dist/marshal/presence/index.d.ts.map +1 -0
- package/dist/marshal/presence/index.js +2 -0
- package/dist/marshal/presence/index.js.map +1 -0
- package/dist/marshal/schemas/agent.d.ts +27 -0
- package/dist/marshal/schemas/agent.d.ts.map +1 -0
- package/dist/marshal/schemas/agent.js +2 -0
- package/dist/marshal/schemas/agent.js.map +1 -0
- package/dist/marshal/schemas/baseline.d.ts +73 -0
- package/dist/marshal/schemas/baseline.d.ts.map +1 -0
- package/dist/marshal/schemas/baseline.js +28 -0
- package/dist/marshal/schemas/baseline.js.map +1 -0
- package/dist/marshal/schemas/client.d.ts +50 -0
- package/dist/marshal/schemas/client.d.ts.map +1 -0
- package/dist/marshal/schemas/client.js +27 -0
- package/dist/marshal/schemas/client.js.map +1 -0
- package/dist/marshal/schemas/common.d.ts +252 -0
- package/dist/marshal/schemas/common.d.ts.map +1 -0
- package/dist/marshal/schemas/common.js +119 -0
- package/dist/marshal/schemas/common.js.map +1 -0
- package/dist/marshal/schemas/components.d.ts +95 -0
- package/dist/marshal/schemas/components.d.ts.map +1 -0
- package/dist/marshal/schemas/components.js +10 -0
- package/dist/marshal/schemas/components.js.map +1 -0
- package/dist/marshal/schemas/config.d.ts +20 -0
- package/dist/marshal/schemas/config.d.ts.map +1 -0
- package/dist/marshal/schemas/config.js +11 -0
- package/dist/marshal/schemas/config.js.map +1 -0
- package/dist/marshal/schemas/index.d.ts +18 -0
- package/dist/marshal/schemas/index.d.ts.map +1 -0
- package/dist/marshal/schemas/index.js +11 -0
- package/dist/marshal/schemas/index.js.map +1 -0
- package/dist/marshal/schemas/interactive.d.ts +315 -0
- package/dist/marshal/schemas/interactive.d.ts.map +1 -0
- package/dist/marshal/schemas/interactive.js +201 -0
- package/dist/marshal/schemas/interactive.js.map +1 -0
- package/dist/marshal/schemas/presence.d.ts +29 -0
- package/dist/marshal/schemas/presence.d.ts.map +1 -0
- package/dist/marshal/schemas/presence.js +14 -0
- package/dist/marshal/schemas/presence.js.map +1 -0
- package/dist/marshal/schemas/progress.d.ts +100 -0
- package/dist/marshal/schemas/progress.d.ts.map +1 -0
- package/dist/marshal/schemas/progress.js +55 -0
- package/dist/marshal/schemas/progress.js.map +1 -0
- package/dist/marshal/schemas/server.d.ts +70 -0
- package/dist/marshal/schemas/server.d.ts.map +1 -0
- package/dist/marshal/schemas/server.js +39 -0
- package/dist/marshal/schemas/server.js.map +1 -0
- package/dist/marshal/schemas/setup.d.ts +78 -0
- package/dist/marshal/schemas/setup.d.ts.map +1 -0
- package/dist/marshal/schemas/setup.js +2 -0
- package/dist/marshal/schemas/setup.js.map +1 -0
- package/dist/marshal/schemas/tools.d.ts +124 -0
- package/dist/marshal/schemas/tools.d.ts.map +1 -0
- package/dist/marshal/schemas/tools.js +75 -0
- package/dist/marshal/schemas/tools.js.map +1 -0
- package/dist/marshal/schemas/types.d.ts +33 -0
- package/dist/marshal/schemas/types.d.ts.map +1 -0
- package/dist/marshal/schemas/types.js +2 -0
- package/dist/marshal/schemas/types.js.map +1 -0
- package/dist/marshal/schemas/worker.d.ts +8 -0
- package/dist/marshal/schemas/worker.d.ts.map +1 -0
- package/dist/marshal/schemas/worker.js +7 -0
- package/dist/marshal/schemas/worker.js.map +1 -0
- package/dist/marshal/setup/guided.d.ts +26 -0
- package/dist/marshal/setup/guided.d.ts.map +1 -0
- package/dist/marshal/setup/guided.js +83 -0
- package/dist/marshal/setup/guided.js.map +1 -0
- package/dist/marshal/setup/index.d.ts +12 -0
- package/dist/marshal/setup/index.d.ts.map +1 -0
- package/dist/marshal/setup/index.js +11 -0
- package/dist/marshal/setup/index.js.map +1 -0
- package/dist/marshal/setup/provider-runtime.d.ts +23 -0
- package/dist/marshal/setup/provider-runtime.d.ts.map +1 -0
- package/dist/marshal/setup/provider-runtime.detected-models.d.ts +239 -0
- package/dist/marshal/setup/provider-runtime.detected-models.d.ts.map +1 -0
- package/dist/marshal/setup/provider-runtime.detected-models.js +30 -0
- package/dist/marshal/setup/provider-runtime.detected-models.js.map +1 -0
- package/dist/marshal/setup/provider-runtime.js +115 -0
- package/dist/marshal/setup/provider-runtime.js.map +1 -0
- package/dist/marshal/setup/provider-runtime.models.d.ts +38 -0
- package/dist/marshal/setup/provider-runtime.models.d.ts.map +1 -0
- package/dist/marshal/setup/provider-runtime.models.js +38 -0
- package/dist/marshal/setup/provider-runtime.models.js.map +1 -0
- package/dist/marshal/setup/save-baseline.d.ts +12 -0
- package/dist/marshal/setup/save-baseline.d.ts.map +1 -0
- package/dist/marshal/setup/save-baseline.js +89 -0
- package/dist/marshal/setup/save-baseline.js.map +1 -0
- package/dist/marshal/setup/save-baseline.normalizers.d.ts +20 -0
- package/dist/marshal/setup/save-baseline.normalizers.d.ts.map +1 -0
- package/dist/marshal/setup/save-baseline.normalizers.js +72 -0
- package/dist/marshal/setup/save-baseline.normalizers.js.map +1 -0
- package/dist/marshal/setup/types.d.ts +17 -0
- package/dist/marshal/setup/types.d.ts.map +1 -0
- package/dist/marshal/setup/types.js +26 -0
- package/dist/marshal/setup/types.js.map +1 -0
- package/dist/marshal/tools/index.d.ts +9 -0
- package/dist/marshal/tools/index.d.ts.map +1 -0
- package/dist/marshal/tools/index.js +9 -0
- package/dist/marshal/tools/index.js.map +1 -0
- package/dist/marshal/tools/unified/descriptor.d.ts +130 -0
- package/dist/marshal/tools/unified/descriptor.d.ts.map +1 -0
- package/dist/marshal/tools/unified/descriptor.js +53 -0
- package/dist/marshal/tools/unified/descriptor.js.map +1 -0
- package/dist/marshal/tools/unified/index.d.ts +10 -0
- package/dist/marshal/tools/unified/index.d.ts.map +1 -0
- package/dist/marshal/tools/unified/index.js +9 -0
- package/dist/marshal/tools/unified/index.js.map +1 -0
- package/dist/marshal/tools/unified/marshal.execution.d.ts +12 -0
- package/dist/marshal/tools/unified/marshal.execution.d.ts.map +1 -0
- package/dist/marshal/tools/unified/marshal.execution.js +104 -0
- package/dist/marshal/tools/unified/marshal.execution.js.map +1 -0
- package/dist/marshal/tools/unified/marshal.impl.cloud.d.ts +13 -0
- package/dist/marshal/tools/unified/marshal.impl.cloud.d.ts.map +1 -0
- package/dist/marshal/tools/unified/marshal.impl.cloud.js +15 -0
- package/dist/marshal/tools/unified/marshal.impl.cloud.js.map +1 -0
- package/dist/marshal/tools/unified/marshal.impl.consumer.d.ts +13 -0
- package/dist/marshal/tools/unified/marshal.impl.consumer.d.ts.map +1 -0
- package/dist/marshal/tools/unified/marshal.impl.consumer.js +15 -0
- package/dist/marshal/tools/unified/marshal.impl.consumer.js.map +1 -0
- package/dist/marshal/tools/unified/marshal.unified.descriptor.d.ts +140 -0
- package/dist/marshal/tools/unified/marshal.unified.descriptor.d.ts.map +1 -0
- package/dist/marshal/tools/unified/marshal.unified.descriptor.js +57 -0
- package/dist/marshal/tools/unified/marshal.unified.descriptor.js.map +1 -0
- package/dist/marshal/tools/unified/schemas.d.ts +8 -0
- package/dist/marshal/tools/unified/schemas.d.ts.map +1 -0
- package/dist/marshal/tools/unified/schemas.js +7 -0
- package/dist/marshal/tools/unified/schemas.js.map +1 -0
- package/dist/marshal/types.d.ts +2 -0
- package/dist/marshal/types.d.ts.map +1 -0
- package/dist/marshal/types.js +2 -0
- package/dist/marshal/types.js.map +1 -0
- package/dist/marshal/worker/index.d.ts +6 -0
- package/dist/marshal/worker/index.d.ts.map +1 -0
- package/dist/marshal/worker/index.js +5 -0
- package/dist/marshal/worker/index.js.map +1 -0
- package/dist/marshal/worker/jobs/assistance-job.d.ts +34 -0
- package/dist/marshal/worker/jobs/assistance-job.d.ts.map +1 -0
- package/dist/marshal/worker/jobs/assistance-job.js +43 -0
- package/dist/marshal/worker/jobs/assistance-job.js.map +1 -0
- package/dist/marshal/worker/jobs/configure-job.d.ts +48 -0
- package/dist/marshal/worker/jobs/configure-job.d.ts.map +1 -0
- package/dist/marshal/worker/jobs/configure-job.js +52 -0
- package/dist/marshal/worker/jobs/configure-job.js.map +1 -0
- package/dist/marshal/worker/jobs/index.d.ts +7 -0
- package/dist/marshal/worker/jobs/index.d.ts.map +1 -0
- package/dist/marshal/worker/jobs/index.js +7 -0
- package/dist/marshal/worker/jobs/index.js.map +1 -0
- package/dist/marshal/worker/jobs/onboarding-progress-job.d.ts +47 -0
- package/dist/marshal/worker/jobs/onboarding-progress-job.d.ts.map +1 -0
- package/dist/marshal/worker/jobs/onboarding-progress-job.js +51 -0
- package/dist/marshal/worker/jobs/onboarding-progress-job.js.map +1 -0
- package/dist/marshal/worker/marshal.assistance.job.impl.d.ts +3 -0
- package/dist/marshal/worker/marshal.assistance.job.impl.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.assistance.job.impl.js +3 -0
- package/dist/marshal/worker/marshal.assistance.job.impl.js.map +1 -0
- package/dist/marshal/worker/marshal.concierge.descriptor.d.ts +3 -0
- package/dist/marshal/worker/marshal.concierge.descriptor.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.concierge.descriptor.js +14 -0
- package/dist/marshal/worker/marshal.concierge.descriptor.js.map +1 -0
- package/dist/marshal/worker/marshal.concierge.impl.consumer.d.ts +12 -0
- package/dist/marshal/worker/marshal.concierge.impl.consumer.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.concierge.impl.consumer.js +23 -0
- package/dist/marshal/worker/marshal.concierge.impl.consumer.js.map +1 -0
- package/dist/marshal/worker/marshal.configure.job.impl.d.ts +3 -0
- package/dist/marshal/worker/marshal.configure.job.impl.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.configure.job.impl.js +3 -0
- package/dist/marshal/worker/marshal.configure.job.impl.js.map +1 -0
- package/dist/marshal/worker/marshal.jobs.descriptor.d.ts +6 -0
- package/dist/marshal/worker/marshal.jobs.descriptor.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.jobs.descriptor.js +50 -0
- package/dist/marshal/worker/marshal.jobs.descriptor.js.map +1 -0
- package/dist/marshal/worker/marshal.onboarding-progress.job.impl.d.ts +3 -0
- package/dist/marshal/worker/marshal.onboarding-progress.job.impl.d.ts.map +1 -0
- package/dist/marshal/worker/marshal.onboarding-progress.job.impl.js +3 -0
- package/dist/marshal/worker/marshal.onboarding-progress.job.impl.js.map +1 -0
- package/dist/plugin/agent-tools.d.ts +15 -0
- package/dist/plugin/agent-tools.d.ts.map +1 -0
- package/dist/plugin/agent-tools.js +27 -0
- package/dist/plugin/agent-tools.js.map +1 -0
- package/dist/records/index.d.ts +7 -0
- package/dist/records/index.d.ts.map +1 -0
- package/dist/records/index.js +7 -0
- package/dist/records/index.js.map +1 -0
- package/dist/records/lane.record.descriptor.d.ts +11 -0
- package/dist/records/lane.record.descriptor.d.ts.map +1 -0
- package/dist/records/lane.record.descriptor.js +47 -0
- package/dist/records/lane.record.descriptor.js.map +1 -0
- package/dist/records/note.record.descriptor.d.ts +10 -0
- package/dist/records/note.record.descriptor.d.ts.map +1 -0
- package/dist/records/note.record.descriptor.js +46 -0
- package/dist/records/note.record.descriptor.js.map +1 -0
- package/dist/records/notification.record.descriptor.d.ts +11 -0
- package/dist/records/notification.record.descriptor.d.ts.map +1 -0
- package/dist/records/notification.record.descriptor.js +50 -0
- package/dist/records/notification.record.descriptor.js.map +1 -0
- package/dist/records/request.record.descriptor.d.ts +10 -0
- package/dist/records/request.record.descriptor.d.ts.map +1 -0
- package/dist/records/request.record.descriptor.js +50 -0
- package/dist/records/request.record.descriptor.js.map +1 -0
- package/dist/records/task.record.descriptor.d.ts +10 -0
- package/dist/records/task.record.descriptor.d.ts.map +1 -0
- package/dist/records/task.record.descriptor.js +65 -0
- package/dist/records/task.record.descriptor.js.map +1 -0
- package/dist/records/watch.record.descriptor.d.ts +10 -0
- package/dist/records/watch.record.descriptor.d.ts.map +1 -0
- package/dist/records/watch.record.descriptor.js +48 -0
- package/dist/records/watch.record.descriptor.js.map +1 -0
- package/dist/schemas/agent-action.d.ts +31 -0
- package/dist/schemas/agent-action.d.ts.map +1 -0
- package/dist/schemas/agent-action.js +24 -0
- package/dist/schemas/agent-action.js.map +1 -0
- package/dist/schemas/card-projection.d.ts +193 -0
- package/dist/schemas/card-projection.d.ts.map +1 -0
- package/dist/schemas/card-projection.js +30 -0
- package/dist/schemas/card-projection.js.map +1 -0
- package/dist/schemas/contracts.d.ts +1117 -0
- package/dist/schemas/contracts.d.ts.map +1 -0
- package/dist/schemas/contracts.js +38 -0
- package/dist/schemas/contracts.js.map +1 -0
- package/dist/schemas/headless-attention.d.ts +189 -0
- package/dist/schemas/headless-attention.d.ts.map +1 -0
- package/dist/schemas/headless-attention.js +136 -0
- package/dist/schemas/headless-attention.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +15 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/lane.d.ts +17 -0
- package/dist/schemas/lane.d.ts.map +1 -0
- package/dist/schemas/lane.js +14 -0
- package/dist/schemas/lane.js.map +1 -0
- package/dist/schemas/note.d.ts +14 -0
- package/dist/schemas/note.d.ts.map +1 -0
- package/dist/schemas/note.js +11 -0
- package/dist/schemas/note.js.map +1 -0
- package/dist/schemas/notification.d.ts +33 -0
- package/dist/schemas/notification.d.ts.map +1 -0
- package/dist/schemas/notification.js +19 -0
- package/dist/schemas/notification.js.map +1 -0
- package/dist/schemas/owner.d.ts +27 -0
- package/dist/schemas/owner.d.ts.map +1 -0
- package/dist/schemas/owner.js +18 -0
- package/dist/schemas/owner.js.map +1 -0
- package/dist/schemas/request.d.ts +69 -0
- package/dist/schemas/request.d.ts.map +1 -0
- package/dist/schemas/request.js +53 -0
- package/dist/schemas/request.js.map +1 -0
- package/dist/schemas/state.d.ts +170 -0
- package/dist/schemas/state.d.ts.map +1 -0
- package/dist/schemas/state.js +19 -0
- package/dist/schemas/state.js.map +1 -0
- package/dist/schemas/support-escalate.d.ts +54 -0
- package/dist/schemas/support-escalate.d.ts.map +1 -0
- package/dist/schemas/support-escalate.js +39 -0
- package/dist/schemas/support-escalate.js.map +1 -0
- package/dist/schemas/surface.d.ts +19 -0
- package/dist/schemas/surface.d.ts.map +1 -0
- package/dist/schemas/surface.js +8 -0
- package/dist/schemas/surface.js.map +1 -0
- package/dist/schemas/task.d.ts +70 -0
- package/dist/schemas/task.d.ts.map +1 -0
- package/dist/schemas/task.js +48 -0
- package/dist/schemas/task.js.map +1 -0
- package/dist/schemas/watch.d.ts +44 -0
- package/dist/schemas/watch.d.ts.map +1 -0
- package/dist/schemas/watch.js +19 -0
- package/dist/schemas/watch.js.map +1 -0
- package/dist/schemas/workboard-status-category.d.ts +35 -0
- package/dist/schemas/workboard-status-category.d.ts.map +1 -0
- package/dist/schemas/workboard-status-category.js +45 -0
- package/dist/schemas/workboard-status-category.js.map +1 -0
- package/dist/storage/owner-transforms.d.ts +228 -0
- package/dist/storage/owner-transforms.d.ts.map +1 -0
- package/dist/storage/owner-transforms.js +132 -0
- package/dist/storage/owner-transforms.js.map +1 -0
- package/dist/svelte/components/LaneBoard.svelte +250 -0
- package/dist/svelte/components/LaneBoard.svelte.d.ts +20 -0
- package/dist/svelte/components/LaneBoard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LaneBoardComposer.svelte +78 -0
- package/dist/svelte/components/LaneBoardComposer.svelte.d.ts +24 -0
- package/dist/svelte/components/LaneBoardComposer.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LaneBoardFilters.svelte +34 -0
- package/dist/svelte/components/LaneBoardFilters.svelte.d.ts +12 -0
- package/dist/svelte/components/LaneBoardFilters.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LaneBoardLane.svelte +46 -0
- package/dist/svelte/components/LaneBoardLane.svelte.d.ts +18 -0
- package/dist/svelte/components/LaneBoardLane.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LaneBoardSummary.svelte +38 -0
- package/dist/svelte/components/LaneBoardSummary.svelte.d.ts +12 -0
- package/dist/svelte/components/LaneBoardSummary.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LaneBoardTaskRow.svelte +158 -0
- package/dist/svelte/components/LaneBoardTaskRow.svelte.d.ts +31 -0
- package/dist/svelte/components/LaneBoardTaskRow.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PriorityBadge.svelte +21 -0
- package/dist/svelte/components/PriorityBadge.svelte.d.ts +7 -0
- package/dist/svelte/components/PriorityBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RequestsQueue.svelte +613 -0
- package/dist/svelte/components/RequestsQueue.svelte.d.ts +21 -0
- package/dist/svelte/components/RequestsQueue.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StatCard.svelte +27 -0
- package/dist/svelte/components/StatCard.svelte.d.ts +12 -0
- package/dist/svelte/components/StatCard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/StatusBadge.svelte +25 -0
- package/dist/svelte/components/StatusBadge.svelte.d.ts +7 -0
- package/dist/svelte/components/StatusBadge.svelte.d.ts.map +1 -0
- package/dist/svelte/components/WorkboardBoard.svelte +467 -0
- package/dist/svelte/components/WorkboardBoard.svelte.d.ts +26 -0
- package/dist/svelte/components/WorkboardBoard.svelte.d.ts.map +1 -0
- package/dist/svelte/index.d.ts +22 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +24 -0
- package/dist/svelte/lane-board-client.d.ts +3 -0
- package/dist/svelte/lane-board-client.d.ts.map +1 -0
- package/dist/svelte/lane-board-client.js +2 -0
- package/dist/svelte/lane-board.d.ts +120 -0
- package/dist/svelte/lane-board.d.ts.map +1 -0
- package/dist/svelte/lane-board.js +221 -0
- package/dist/svelte/rest-workboard-client.d.ts +235 -0
- package/dist/svelte/rest-workboard-client.d.ts.map +1 -0
- package/dist/svelte/rest-workboard-client.js +52 -0
- package/dist/svelte/styles.css +10 -0
- package/dist/svelte/tool-widgets/MarshalToolCard.svelte +67 -0
- package/dist/svelte/tool-widgets/MarshalToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/MarshalToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/SupportEscalateToolCard.svelte +42 -0
- package/dist/svelte/tool-widgets/SupportEscalateToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/SupportEscalateToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +7 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +6 -0
- package/dist/svelte/types.d.ts +24 -0
- package/dist/svelte/types.d.ts.map +1 -0
- package/dist/svelte/types.js +1 -0
- package/dist/svelte/workboard-svelte.plugin.d.ts +10 -0
- package/dist/svelte/workboard-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/workboard-svelte.plugin.js +31 -0
- package/dist/svelte/workboard-utils.d.ts +33 -0
- package/dist/svelte/workboard-utils.d.ts.map +1 -0
- package/dist/svelte/workboard-utils.js +85 -0
- package/dist/tools/card-projections.d.ts +7 -0
- package/dist/tools/card-projections.d.ts.map +1 -0
- package/dist/tools/card-projections.js +64 -0
- package/dist/tools/card-projections.js.map +1 -0
- package/dist/tools/support-escalate/schemas.d.ts +2 -0
- package/dist/tools/support-escalate/schemas.d.ts.map +1 -0
- package/dist/tools/support-escalate/schemas.js +2 -0
- package/dist/tools/support-escalate/schemas.js.map +1 -0
- package/dist/tools/support-escalate/support-escalate.descriptor.d.ts +49 -0
- package/dist/tools/support-escalate/support-escalate.descriptor.d.ts.map +1 -0
- package/dist/tools/support-escalate/support-escalate.descriptor.js +42 -0
- package/dist/tools/support-escalate/support-escalate.descriptor.js.map +1 -0
- package/dist/tools/support-escalate/support-escalate.impl.cloud.d.ts +17 -0
- package/dist/tools/support-escalate/support-escalate.impl.cloud.d.ts.map +1 -0
- package/dist/tools/support-escalate/support-escalate.impl.cloud.js +63 -0
- package/dist/tools/support-escalate/support-escalate.impl.cloud.js.map +1 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +2 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/tool-widgets/MarshalToolWidget.impl.consumer.d.ts +4 -0
- package/dist/tui/tool-widgets/MarshalToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/MarshalToolWidget.impl.consumer.js +17 -0
- package/dist/tui/tool-widgets/MarshalToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/tool-widgets/SupportEscalateToolWidget.impl.consumer.d.ts +4 -0
- package/dist/tui/tool-widgets/SupportEscalateToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/SupportEscalateToolWidget.impl.consumer.js +11 -0
- package/dist/tui/tool-widgets/SupportEscalateToolWidget.impl.consumer.js.map +1 -0
- package/dist/tui/workboard-tui.plugin.d.ts +7 -0
- package/dist/tui/workboard-tui.plugin.d.ts.map +1 -0
- package/dist/tui/workboard-tui.plugin.js +32 -0
- package/dist/tui/workboard-tui.plugin.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/exec.d.ts +35 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +31 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/workboard.plugin.d.ts +8 -0
- package/dist/workboard.plugin.d.ts.map +1 -0
- package/dist/workboard.plugin.js +46 -0
- package/dist/workboard.plugin.js.map +1 -0
- package/dist/workboard.runtime-client.descriptor.d.ts +4 -0
- package/dist/workboard.runtime-client.descriptor.d.ts.map +1 -0
- package/dist/workboard.runtime-client.descriptor.js +13 -0
- package/dist/workboard.runtime-client.descriptor.js.map +1 -0
- package/package.json +409 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatCard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/StatCard.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGrC,KAAK,gBAAgB,GAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA+BrH,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
status: string | number;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
let { status }: Props = $props();
|
|
7
|
+
|
|
8
|
+
const config = new Map(Object.entries({
|
|
9
|
+
pending: { label: 'Pending', cls: 'border-warning/30 bg-warning/10 text-warning' },
|
|
10
|
+
in_progress: { label: 'In Progress', cls: 'border-info/30 bg-info/10 text-info' },
|
|
11
|
+
blocked: { label: 'Blocked', cls: 'border-destructive/30 bg-destructive/10 text-destructive' },
|
|
12
|
+
completed: { label: 'Completed', cls: 'border-success/30 bg-success/10 text-success' },
|
|
13
|
+
approved: { label: 'Approved', cls: 'border-success/30 bg-success/10 text-success' },
|
|
14
|
+
rejected: { label: 'Rejected', cls: 'border-destructive/30 bg-destructive/10 text-destructive' },
|
|
15
|
+
expired: { label: 'Expired', cls: 'border-muted bg-muted/50 text-muted-foreground' },
|
|
16
|
+
cancelled: { label: 'Cancelled', cls: 'border-muted bg-muted/50 text-muted-foreground' }
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
let s = $derived(String(status));
|
|
20
|
+
let resolved = $derived(config.get(s) || { label: s.charAt(0).toUpperCase() + s.slice(1).replace(/_/g, ' '), cls: 'border-muted bg-muted/50 text-muted-foreground' });
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<span class="inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-medium {resolved.cls}">
|
|
24
|
+
{resolved.label}
|
|
25
|
+
</span>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBadge.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/StatusBadge.svelte.ts"],"names":[],"mappings":"AAGC,UAAU,KAAK;IACd,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AA2BF,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { settle } from '@vibesdotdev/kernel';
|
|
3
|
+
import { ConfirmDialog, Icon } from '@vibesdotdev/kit/components';
|
|
4
|
+
import EmptyState from '@vibesdotdev/kit/components/layout/EmptyState';
|
|
5
|
+
import StatusBadge from './StatusBadge.svelte';
|
|
6
|
+
import PriorityBadge from './PriorityBadge.svelte';
|
|
7
|
+
import { Button } from '@vibesdotdev/kit/components/ui/button';
|
|
8
|
+
import { Input } from '@vibesdotdev/kit/components/ui/input';
|
|
9
|
+
import { NativeSelect, NativeSelectOption } from '@vibesdotdev/kit/components/ui/native-select';
|
|
10
|
+
import { TabbedMarkdownEditor } from '@vibesdotdev/kit/components/code';
|
|
11
|
+
import { createRestWorkboardClient } from '../rest-workboard-client.js';
|
|
12
|
+
import type { WorkboardTaskView } from '../types.js';
|
|
13
|
+
import { sortTasksByPriorityThenRecency } from '../workboard-utils.js';
|
|
14
|
+
import { toast } from 'svelte-sonner';
|
|
15
|
+
import { tick, untrack } from 'svelte';
|
|
16
|
+
|
|
17
|
+
/** Minimal id→label lookup for rendering an agent chip on rows/detail. */
|
|
18
|
+
export type AgentLabelMap = Record<string, string>;
|
|
19
|
+
type TaskLink = NonNullable<WorkboardTaskView['links']>[number];
|
|
20
|
+
export type RelatedWorkLink = {
|
|
21
|
+
href: string;
|
|
22
|
+
label: string;
|
|
23
|
+
icon?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
let {
|
|
28
|
+
tasks,
|
|
29
|
+
activeAgentId = null,
|
|
30
|
+
agents = {},
|
|
31
|
+
resolveRelatedLink = () => null,
|
|
32
|
+
initialTaskId = null,
|
|
33
|
+
projectName = null
|
|
34
|
+
}: {
|
|
35
|
+
tasks: WorkboardTaskView[];
|
|
36
|
+
activeAgentId?: string | null;
|
|
37
|
+
/** Optional id→label map (e.g. from `agentsState`); additive, default = no chips. */
|
|
38
|
+
agents?: AgentLabelMap;
|
|
39
|
+
/** App-owned navigation projection for typed cross-domain task links. */
|
|
40
|
+
resolveRelatedLink?: (link: TaskLink) => RelatedWorkLink | null;
|
|
41
|
+
/** Expand and reveal this task once when arriving from a contextual deep link. */
|
|
42
|
+
initialTaskId?: string | null;
|
|
43
|
+
/** Name of the project these tasks belong to; shown in the header when set. */
|
|
44
|
+
projectName?: string | null;
|
|
45
|
+
} = $props();
|
|
46
|
+
|
|
47
|
+
type MarshalTask = WorkboardTaskView;
|
|
48
|
+
let boardTasks = $derived<MarshalTask[]>(
|
|
49
|
+
tasks ? sortTasksByPriorityThenRecency(structuredClone($state.snapshot(tasks))) : []
|
|
50
|
+
);
|
|
51
|
+
let showAddForm = $state(false);
|
|
52
|
+
let newTitle = $state('');
|
|
53
|
+
let newDesc = $state('');
|
|
54
|
+
let newPriority = $state<MarshalTask['priority']>('medium');
|
|
55
|
+
// Resolve the first deep-linked task during initialization so SSR/client
|
|
56
|
+
// hydration already agree on the expanded row. The effect below handles a
|
|
57
|
+
// later in-place query change and performs the reveal scroll.
|
|
58
|
+
let selectedTask = $state<MarshalTask | null>(
|
|
59
|
+
untrack(() =>
|
|
60
|
+
initialTaskId ? (tasks.find((task) => task.id === initialTaskId) ?? null) : null
|
|
61
|
+
)
|
|
62
|
+
);
|
|
63
|
+
let noteText = $state('');
|
|
64
|
+
let filterStatus = $state('all');
|
|
65
|
+
let deleteTargetId = $state<string | null>(null);
|
|
66
|
+
let deleteDialogOpen = $state(false);
|
|
67
|
+
let lastAutoOpenedTaskId = $state<string | null>(null);
|
|
68
|
+
|
|
69
|
+
// Optional within-data narrow: when `activeAgentId` is non-null, show the rows
|
|
70
|
+
// that belong to that agent — either by server-stamped provenance (`agentId`,
|
|
71
|
+
// set when an agent/applet produced the task) or by assignment (`assigned_to`,
|
|
72
|
+
// set when a human added the task while that agent was selected). null = "All
|
|
73
|
+
// agents" (show all).
|
|
74
|
+
let agentScopedTasks = $derived(
|
|
75
|
+
activeAgentId == null
|
|
76
|
+
? boardTasks
|
|
77
|
+
: boardTasks.filter(
|
|
78
|
+
(t) => t.agentId === activeAgentId || t.assigned_to === activeAgentId
|
|
79
|
+
)
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
let filteredTasks = $derived(
|
|
83
|
+
filterStatus === 'all'
|
|
84
|
+
? agentScopedTasks
|
|
85
|
+
: agentScopedTasks.filter((t) => t.status === filterStatus)
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
$effect(() => {
|
|
89
|
+
if (!initialTaskId || lastAutoOpenedTaskId === initialTaskId) return;
|
|
90
|
+
const task = boardTasks.find((candidate) => candidate.id === initialTaskId);
|
|
91
|
+
if (!task) return;
|
|
92
|
+
filterStatus = 'all';
|
|
93
|
+
selectedTask = task;
|
|
94
|
+
lastAutoOpenedTaskId = initialTaskId;
|
|
95
|
+
void tick().then(() => {
|
|
96
|
+
document.getElementById(`workboard-task-${initialTaskId}`)?.scrollIntoView({
|
|
97
|
+
block: 'center',
|
|
98
|
+
behavior: 'smooth'
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
// Render the prop on the server, then treat mutation assignments below as
|
|
104
|
+
// optimistic overrides until the next canonical `tasks` prop refresh.
|
|
105
|
+
|
|
106
|
+
// Monotonic mutation counter. Every local mutation below bumps it; the poll
|
|
107
|
+
// captures it before its GET and discards the response if a mutation landed
|
|
108
|
+
// mid-flight — so a slow poll started before "Start"/"Delete"/"Add" can't
|
|
109
|
+
// resolve afterward and revert the fresher local state (a real flicker
|
|
110
|
+
// otherwise, self-healing only on the next tick).
|
|
111
|
+
let mutationSeq = $state(0);
|
|
112
|
+
|
|
113
|
+
// Visibility-aware ~30s poll so agent-driven changes (a task started,
|
|
114
|
+
// finished, or created by an agent while this tab is open) surface without
|
|
115
|
+
// a manual reload. Only polls while the tab is visible; it uses the same
|
|
116
|
+
// canonical client path mutations already use, so it composes with
|
|
117
|
+
// the resync effect above rather than fighting it.
|
|
118
|
+
$effect(() => {
|
|
119
|
+
const POLL_MS = 30_000;
|
|
120
|
+
let timer: ReturnType<typeof setInterval> | null = null;
|
|
121
|
+
|
|
122
|
+
async function poll() {
|
|
123
|
+
if (document.visibilityState !== 'visible') return;
|
|
124
|
+
const seqAtStart = mutationSeq;
|
|
125
|
+
const outcome = await settle(async () => {
|
|
126
|
+
const fresh = await createRestWorkboardClient().tasks.list();
|
|
127
|
+
// A mutation resolved while this GET was in flight — its result is
|
|
128
|
+
// fresher than ours, so drop this stale snapshot.
|
|
129
|
+
if (mutationSeq !== seqAtStart) return;
|
|
130
|
+
boardTasks = sortTasksByPriorityThenRecency(fresh);
|
|
131
|
+
});
|
|
132
|
+
if (!outcome.ok) toast.error(outcome.cause instanceof Error ? outcome.cause.message : outcome.cause.description);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function start() {
|
|
136
|
+
if (timer) return;
|
|
137
|
+
timer = setInterval(poll, POLL_MS);
|
|
138
|
+
}
|
|
139
|
+
function stop() {
|
|
140
|
+
if (!timer) return;
|
|
141
|
+
clearInterval(timer);
|
|
142
|
+
timer = null;
|
|
143
|
+
}
|
|
144
|
+
function onVisibilityChange() {
|
|
145
|
+
if (document.visibilityState === 'visible') {
|
|
146
|
+
start();
|
|
147
|
+
void poll();
|
|
148
|
+
} else {
|
|
149
|
+
stop();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (document.visibilityState === 'visible') start();
|
|
154
|
+
document.addEventListener('visibilitychange', onVisibilityChange);
|
|
155
|
+
|
|
156
|
+
return () => {
|
|
157
|
+
stop();
|
|
158
|
+
document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
async function addTask() {
|
|
163
|
+
if (!newTitle.trim()) return;
|
|
164
|
+
mutationSeq++;
|
|
165
|
+
const outcome = await settle(async () => {
|
|
166
|
+
const workboard = createRestWorkboardClient();
|
|
167
|
+
await workboard.tasks.add({
|
|
168
|
+
title: newTitle.trim(),
|
|
169
|
+
description: newDesc.trim() || undefined,
|
|
170
|
+
priority: newPriority,
|
|
171
|
+
// Assign the task to whichever agent is currently selected on the board
|
|
172
|
+
// (so it appears under that agent's filter — see `agentScopedTasks`);
|
|
173
|
+
// unassigned when viewing "All agents", never stamped to a fixed agent.
|
|
174
|
+
// `lane` is intentionally omitted — the client defaults it to '' (unassigned).
|
|
175
|
+
assigned_to: activeAgentId ?? undefined
|
|
176
|
+
});
|
|
177
|
+
newTitle = '';
|
|
178
|
+
newDesc = '';
|
|
179
|
+
showAddForm = false;
|
|
180
|
+
boardTasks = sortTasksByPriorityThenRecency(await workboard.tasks.list());
|
|
181
|
+
if (selectedTask) selectedTask = boardTasks.find(task => task.id === selectedTask?.id) ?? null;
|
|
182
|
+
});
|
|
183
|
+
if (!outcome.ok) toast.error(outcome.cause instanceof Error ? outcome.cause.message : outcome.cause.description);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async function updateTaskStatus(id: string, status: MarshalTask['status']) {
|
|
187
|
+
mutationSeq++;
|
|
188
|
+
const outcome = await settle(async () => {
|
|
189
|
+
const updated = await createRestWorkboardClient().tasks.update(id, { status });
|
|
190
|
+
|
|
191
|
+
boardTasks = sortTasksByPriorityThenRecency(
|
|
192
|
+
boardTasks.map((t) => (t.id === id ? updated : t))
|
|
193
|
+
);
|
|
194
|
+
if (selectedTask?.id === id) selectedTask = updated;
|
|
195
|
+
});
|
|
196
|
+
if (!outcome.ok) toast.error(outcome.cause instanceof Error ? outcome.cause.message : outcome.cause.description);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function openDeleteDialog(id: string) {
|
|
200
|
+
deleteTargetId = id;
|
|
201
|
+
deleteDialogOpen = true;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
async function confirmDeleteTask() {
|
|
205
|
+
const id = deleteTargetId;
|
|
206
|
+
if (!id) return;
|
|
207
|
+
mutationSeq++;
|
|
208
|
+
const outcome = await settle(async () => {
|
|
209
|
+
await createRestWorkboardClient().tasks.remove(id);
|
|
210
|
+
boardTasks = boardTasks.filter((t) => t.id !== id);
|
|
211
|
+
selectedTask = null;
|
|
212
|
+
});
|
|
213
|
+
if (!outcome.ok) toast.error(outcome.cause instanceof Error ? outcome.cause.message : outcome.cause.description);
|
|
214
|
+
deleteDialogOpen = false;
|
|
215
|
+
deleteTargetId = null;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
async function addNote(id: string) {
|
|
219
|
+
if (!noteText.trim()) return;
|
|
220
|
+
mutationSeq++;
|
|
221
|
+
const outcome = await settle(async () => {
|
|
222
|
+
const workboard = createRestWorkboardClient();
|
|
223
|
+
await workboard.tasks.addNote(id, noteText.trim());
|
|
224
|
+
noteText = '';
|
|
225
|
+
boardTasks = sortTasksByPriorityThenRecency(await workboard.tasks.list());
|
|
226
|
+
if (selectedTask) selectedTask = boardTasks.find(task => task.id === selectedTask?.id) ?? null;
|
|
227
|
+
});
|
|
228
|
+
if (!outcome.ok) toast.error(outcome.cause instanceof Error ? outcome.cause.message : outcome.cause.description);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Resolve a task's owning agent to a display label — only meaningful in
|
|
232
|
+
// the "All agents" view (activeAgentId == null), since a single-agent
|
|
233
|
+
// filter already tells you whose tasks these are. Unresolvable ids
|
|
234
|
+
// (unknown agent, or no `agents` map passed) render nothing rather than a
|
|
235
|
+
// raw id.
|
|
236
|
+
function agentLabelFor(task: MarshalTask): string | null {
|
|
237
|
+
if (activeAgentId != null) return null;
|
|
238
|
+
const id = task.agentId ?? task.assigned_to;
|
|
239
|
+
if (!id) return null;
|
|
240
|
+
return agents[id] ?? null;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function relatedWorkFor(task: MarshalTask): RelatedWorkLink[] {
|
|
244
|
+
return (task.links ?? []).flatMap((link) => {
|
|
245
|
+
const resolved = resolveRelatedLink(link);
|
|
246
|
+
return resolved ? [resolved] : [];
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
</script>
|
|
250
|
+
|
|
251
|
+
<div class="space-y-6 p-6 lg:p-8">
|
|
252
|
+
<section class="flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between">
|
|
253
|
+
<div>
|
|
254
|
+
<h1 class="text-2xl font-semibold tracking-tight">Tasks</h1>
|
|
255
|
+
<p class="text-sm text-muted-foreground">{agentScopedTasks.filter((t) => t.status === 'pending').length} pending · {agentScopedTasks.filter((t) => t.status === 'completed').length} completed{#if projectName} · {projectName}{/if}</p>
|
|
256
|
+
</div>
|
|
257
|
+
<div class="flex items-center gap-2">
|
|
258
|
+
<Button onclick={() => (showAddForm = !showAddForm)}>
|
|
259
|
+
<Icon icon="lucide:plus" class="size-4" />
|
|
260
|
+
Add Task
|
|
261
|
+
</Button>
|
|
262
|
+
</div>
|
|
263
|
+
</section>
|
|
264
|
+
|
|
265
|
+
{#if showAddForm}
|
|
266
|
+
<div class="rounded-xl border bg-background/60 p-4">
|
|
267
|
+
<Input
|
|
268
|
+
bind:value={newTitle}
|
|
269
|
+
placeholder="Task title"
|
|
270
|
+
/>
|
|
271
|
+
<TabbedMarkdownEditor bind:code={newDesc} editorPlaceholder="Description (optional, markdown supported)" editorMinHeight="200px" editorResizable={true} editorWrapperClass="rounded-md border bg-background/80 mt-2" />
|
|
272
|
+
<div class="mt-3 flex items-center gap-3">
|
|
273
|
+
<NativeSelect bind:value={newPriority} class="rounded-lg border bg-transparent px-3 py-1.5 text-sm">
|
|
274
|
+
<NativeSelectOption value="low">Low</NativeSelectOption>
|
|
275
|
+
<NativeSelectOption value="medium">Medium</NativeSelectOption>
|
|
276
|
+
<NativeSelectOption value="high">High</NativeSelectOption>
|
|
277
|
+
<NativeSelectOption value="critical">Critical</NativeSelectOption>
|
|
278
|
+
</NativeSelect>
|
|
279
|
+
<Button onclick={addTask} size="sm">Create</Button>
|
|
280
|
+
<Button variant="outline" size="sm" onclick={() => (showAddForm = false)}>Cancel</Button>
|
|
281
|
+
</div>
|
|
282
|
+
</div>
|
|
283
|
+
{/if}
|
|
284
|
+
|
|
285
|
+
<div class="flex gap-2 text-sm">
|
|
286
|
+
{#each ['all', 'pending', 'in_progress', 'completed', 'blocked'] as status}
|
|
287
|
+
<Button
|
|
288
|
+
variant={filterStatus === status ? 'default' : 'ghost'}
|
|
289
|
+
size="sm"
|
|
290
|
+
onclick={() => (filterStatus = status)}
|
|
291
|
+
>
|
|
292
|
+
{status === 'in_progress' ? 'In Progress' : status.charAt(0).toUpperCase() + status.slice(1)}
|
|
293
|
+
</Button>
|
|
294
|
+
{/each}
|
|
295
|
+
</div>
|
|
296
|
+
|
|
297
|
+
<!-- Task List -->
|
|
298
|
+
<div class="flex flex-col gap-2">
|
|
299
|
+
{#each filteredTasks as task (task.id)}
|
|
300
|
+
<Button
|
|
301
|
+
id={`workboard-task-${task.id}`}
|
|
302
|
+
variant="ghost"
|
|
303
|
+
class="flex h-auto w-full items-start justify-start gap-3 rounded-xl border bg-background/40 p-4 text-left font-normal whitespace-normal hover:bg-white/6"
|
|
304
|
+
onclick={() => (selectedTask = selectedTask?.id === task.id ? null : task)}
|
|
305
|
+
>
|
|
306
|
+
<StatusBadge status={task.status} />
|
|
307
|
+
<div class="flex-1 min-w-0">
|
|
308
|
+
<div class="flex flex-wrap items-center gap-2">
|
|
309
|
+
<span class="font-medium {task.status === 'completed' ? 'line-through opacity-60' : ''}">{task.title}</span>
|
|
310
|
+
{#if task.displayId}
|
|
311
|
+
<span class="rounded-full border bg-background/60 px-2 py-0.5 font-mono text-xs text-muted-foreground">{task.displayId}</span>
|
|
312
|
+
{/if}
|
|
313
|
+
<PriorityBadge priority={task.priority} />
|
|
314
|
+
{#if agentLabelFor(task)}
|
|
315
|
+
<span class="inline-flex items-center gap-1 rounded-full border bg-background/60 px-2 py-0.5 text-xs text-muted-foreground">
|
|
316
|
+
<Icon icon="lucide:bot" class="size-3" />
|
|
317
|
+
{agentLabelFor(task)}
|
|
318
|
+
</span>
|
|
319
|
+
{/if}
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
<Icon icon="lucide:chevron-down" class="mt-1 size-4 text-muted-foreground {selectedTask?.id === task.id ? 'rotate-180' : ''} transition-transform" />
|
|
323
|
+
</Button>
|
|
324
|
+
|
|
325
|
+
{#if selectedTask?.id === task.id}
|
|
326
|
+
<div class="ml-8 rounded-xl border bg-background/30 p-4 text-sm">
|
|
327
|
+
{#if task.description}
|
|
328
|
+
<div class="mb-3">
|
|
329
|
+
<span class="font-medium text-muted-foreground">Description</span>
|
|
330
|
+
<div class="mt-1 prose prose-sm dark:prose-invert max-w-none"><TabbedMarkdownEditor code={task.description || ''} value="preview" editorMinHeight="60px" editorProps={{ readOnly: true }} /></div>
|
|
331
|
+
</div>
|
|
332
|
+
{/if}
|
|
333
|
+
<div class="flex flex-wrap gap-3 text-xs text-muted-foreground">
|
|
334
|
+
{#if agentLabelFor(task)}
|
|
335
|
+
<span class="inline-flex items-center gap-1"><Icon icon="lucide:bot" class="size-3" />{agentLabelFor(task)}</span>
|
|
336
|
+
{/if}
|
|
337
|
+
<span>Updated: {new Date(task.updated_at).toLocaleString()}</span>
|
|
338
|
+
{#if task.displayId && task.authorityUrl}
|
|
339
|
+
<a
|
|
340
|
+
href={task.authorityUrl}
|
|
341
|
+
onclick={(e) => e.stopPropagation()}
|
|
342
|
+
class="inline-flex items-center gap-1 font-mono text-primary transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
343
|
+
>
|
|
344
|
+
<Icon icon="lucide:external-link" class="size-3" aria-hidden="true" />
|
|
345
|
+
{task.displayId} in project tracker
|
|
346
|
+
</a>
|
|
347
|
+
{/if}
|
|
348
|
+
</div>
|
|
349
|
+
{#if task.notes && task.notes.length > 0}
|
|
350
|
+
<div class="mt-3 border-t pt-3">
|
|
351
|
+
<span class="font-medium text-muted-foreground">Notes</span>
|
|
352
|
+
{#each task.notes as note}
|
|
353
|
+
<div class="mt-1 rounded-lg bg-white/4 p-2 text-xs">
|
|
354
|
+
<span class="text-muted-foreground">{new Date(note.at).toLocaleString()} — {note.by}</span>
|
|
355
|
+
<p class="mt-1 whitespace-pre-wrap">{note.text}</p>
|
|
356
|
+
</div>
|
|
357
|
+
{/each}
|
|
358
|
+
</div>
|
|
359
|
+
{/if}
|
|
360
|
+
|
|
361
|
+
{#if relatedWorkFor(task).length > 0}
|
|
362
|
+
<div class="mt-3 border-t pt-3">
|
|
363
|
+
<p class="font-medium text-muted-foreground">Related work</p>
|
|
364
|
+
<div class="mt-2 flex flex-wrap gap-2">
|
|
365
|
+
{#each relatedWorkFor(task) as related (related.href)}
|
|
366
|
+
<a
|
|
367
|
+
href={related.href}
|
|
368
|
+
class="group inline-flex min-h-10 items-center gap-2 rounded-lg border bg-background/70 px-3 py-2 transition-colors hover:bg-muted/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
369
|
+
>
|
|
370
|
+
<Icon
|
|
371
|
+
icon={related.icon ?? 'lucide:arrow-up-right'}
|
|
372
|
+
class="size-4 text-primary"
|
|
373
|
+
aria-hidden="true"
|
|
374
|
+
/>
|
|
375
|
+
<span>
|
|
376
|
+
<span class="block text-xs font-medium text-foreground">{related.label}</span>
|
|
377
|
+
{#if related.description}
|
|
378
|
+
<span class="block text-[11px] text-muted-foreground">
|
|
379
|
+
{related.description}
|
|
380
|
+
</span>
|
|
381
|
+
{/if}
|
|
382
|
+
</span>
|
|
383
|
+
<Icon
|
|
384
|
+
icon="lucide:arrow-right"
|
|
385
|
+
class="size-3 text-muted-foreground transition-transform group-hover:translate-x-0.5"
|
|
386
|
+
aria-hidden="true"
|
|
387
|
+
/>
|
|
388
|
+
</a>
|
|
389
|
+
{/each}
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
{/if}
|
|
393
|
+
|
|
394
|
+
<!-- Actions -->
|
|
395
|
+
<div class="mt-3 flex flex-wrap gap-2 border-t pt-3">
|
|
396
|
+
{#if task.status === 'pending'}
|
|
397
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); updateTaskStatus(task.id, 'in_progress'); }} class="rounded-lg bg-info/12 text-xs text-info-ink hover:bg-info/20">
|
|
398
|
+
<Icon icon="lucide:play" class="size-3" /> Start
|
|
399
|
+
</Button>
|
|
400
|
+
{/if}
|
|
401
|
+
{#if task.status === 'in_progress'}
|
|
402
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); updateTaskStatus(task.id, 'completed'); }} class="rounded-lg bg-success/14 text-xs text-success-ink hover:bg-success/22">
|
|
403
|
+
<Icon icon="lucide:circle-check-big" class="size-3" /> Complete
|
|
404
|
+
</Button>
|
|
405
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); updateTaskStatus(task.id, 'blocked'); }} class="rounded-lg bg-destructive/12 text-xs text-destructive-ink hover:bg-destructive/20">
|
|
406
|
+
<Icon icon="lucide:circle-alert" class="size-3" /> Block
|
|
407
|
+
</Button>
|
|
408
|
+
{/if}
|
|
409
|
+
{#if task.status === 'blocked'}
|
|
410
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); updateTaskStatus(task.id, 'in_progress'); }} class="rounded-lg bg-info/12 text-xs text-info-ink hover:bg-info/20">
|
|
411
|
+
<Icon icon="lucide:play" class="size-3" /> Unblock
|
|
412
|
+
</Button>
|
|
413
|
+
{/if}
|
|
414
|
+
{#if task.status === 'completed'}
|
|
415
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); updateTaskStatus(task.id, 'pending'); }} class="rounded-lg bg-warning/16 text-xs text-warning-ink hover:bg-warning/24">
|
|
416
|
+
<Icon icon="lucide:pause" class="size-3" /> Reopen
|
|
417
|
+
</Button>
|
|
418
|
+
{/if}
|
|
419
|
+
<Button variant="ghost" size="sm" onclick={(e) => { e.stopPropagation(); openDeleteDialog(task.id); }} class="rounded-lg bg-destructive/8 text-xs text-destructive-ink hover:bg-destructive/16">
|
|
420
|
+
<Icon icon="lucide:archive" class="size-3" /> Archive
|
|
421
|
+
</Button>
|
|
422
|
+
</div>
|
|
423
|
+
|
|
424
|
+
<!-- Add Note -->
|
|
425
|
+
<div class="mt-3 border-t pt-3">
|
|
426
|
+
<div class="flex gap-2">
|
|
427
|
+
<Input
|
|
428
|
+
bind:value={noteText}
|
|
429
|
+
placeholder="Add a note..."
|
|
430
|
+
class="flex-1"
|
|
431
|
+
onclick={(e) => e.stopPropagation()}
|
|
432
|
+
/>
|
|
433
|
+
<Button size="sm" aria-label="Send note" onclick={(e) => { e.stopPropagation(); addNote(task.id); }} class="rounded-lg">
|
|
434
|
+
<Icon icon="lucide:send" class="size-3" />
|
|
435
|
+
</Button>
|
|
436
|
+
</div>
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
{/if}
|
|
440
|
+
{/each}
|
|
441
|
+
{#if filteredTasks.length === 0}
|
|
442
|
+
{#if filterStatus !== 'all' && agentScopedTasks.length > 0}
|
|
443
|
+
<EmptyState
|
|
444
|
+
title="No tasks match your filters — clear filters"
|
|
445
|
+
description="Show every task again."
|
|
446
|
+
/>
|
|
447
|
+
<div class="flex justify-center">
|
|
448
|
+
<Button variant="outline" size="sm" onclick={() => (filterStatus = 'all')}>
|
|
449
|
+
Clear filters
|
|
450
|
+
</Button>
|
|
451
|
+
</div>
|
|
452
|
+
{:else}
|
|
453
|
+
<EmptyState
|
|
454
|
+
title="No tasks yet"
|
|
455
|
+
description="Tasks you and your agents create appear here — add one to get started."
|
|
456
|
+
/>
|
|
457
|
+
{/if}
|
|
458
|
+
{/if}
|
|
459
|
+
</div>
|
|
460
|
+
|
|
461
|
+
<ConfirmDialog
|
|
462
|
+
bind:open={deleteDialogOpen}
|
|
463
|
+
title="Archive Task"
|
|
464
|
+
description="Archive this task? It leaves the board but stays in your work history."
|
|
465
|
+
onconfirm={confirmDeleteTask}
|
|
466
|
+
/>
|
|
467
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WorkboardTaskView } from '../types.ts';
|
|
2
|
+
/** Minimal id→label lookup for rendering an agent chip on rows/detail. */
|
|
3
|
+
export type AgentLabelMap = Record<string, string>;
|
|
4
|
+
type TaskLink = NonNullable<WorkboardTaskView['links']>[number];
|
|
5
|
+
export type RelatedWorkLink = {
|
|
6
|
+
href: string;
|
|
7
|
+
label: string;
|
|
8
|
+
icon?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
};
|
|
11
|
+
type $$ComponentProps = {
|
|
12
|
+
tasks: WorkboardTaskView[];
|
|
13
|
+
activeAgentId?: string | null;
|
|
14
|
+
/** Optional id→label map (e.g. from `agentsState`); additive, default = no chips. */
|
|
15
|
+
agents?: AgentLabelMap;
|
|
16
|
+
/** App-owned navigation projection for typed cross-domain task links. */
|
|
17
|
+
resolveRelatedLink?: (link: TaskLink) => RelatedWorkLink | null;
|
|
18
|
+
/** Expand and reveal this task once when arriving from a contextual deep link. */
|
|
19
|
+
initialTaskId?: string | null;
|
|
20
|
+
/** Name of the project these tasks belong to; shown in the header when set. */
|
|
21
|
+
projectName?: string | null;
|
|
22
|
+
};
|
|
23
|
+
declare const WorkboardBoard: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
24
|
+
type WorkboardBoard = ReturnType<typeof WorkboardBoard>;
|
|
25
|
+
export default WorkboardBoard;
|
|
26
|
+
//# sourceMappingURL=WorkboardBoard.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkboardBoard.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/components/WorkboardBoard.svelte.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMpD,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnD,KAAK,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAGF,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qFAAqF;IACrF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,eAAe,GAAG,IAAI,CAAC;IAChE,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAyZH,QAAA,MAAM,cAAc,sDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Browser components, projections and the host REST adapter. See SPEC.md. */
|
|
2
|
+
export { default as workboardSveltePlugin } from './workboard-svelte.plugin.ts';
|
|
3
|
+
export * from './workboard-svelte.plugin.ts';
|
|
4
|
+
export type { WorkboardTask, WorkboardRequest, WorkboardTaskView, WorkboardRequestView, WorkboardViewer, TaskNote, TaskStatus, TaskPriority, RequestType, RequestStatus } from './types.ts';
|
|
5
|
+
export { timeAgo, formatDate, statusToneClass, laneToneClass, eventToneClass } from './workboard-utils.ts';
|
|
6
|
+
export { default as WorkboardBoard } from './components/WorkboardBoard.svelte';
|
|
7
|
+
export { default as LaneBoard } from './components/LaneBoard.svelte';
|
|
8
|
+
export { default as LaneBoardComposer } from './components/LaneBoardComposer.svelte';
|
|
9
|
+
export { default as LaneBoardFilters } from './components/LaneBoardFilters.svelte';
|
|
10
|
+
export { default as LaneBoardLane } from './components/LaneBoardLane.svelte';
|
|
11
|
+
export { default as LaneBoardSummary } from './components/LaneBoardSummary.svelte';
|
|
12
|
+
export { default as LaneBoardTaskRow } from './components/LaneBoardTaskRow.svelte';
|
|
13
|
+
export { default as RequestsQueue } from './components/RequestsQueue.svelte';
|
|
14
|
+
export { default as StatusBadge } from './components/StatusBadge.svelte';
|
|
15
|
+
export { default as PriorityBadge } from './components/PriorityBadge.svelte';
|
|
16
|
+
export { default as StatCard } from './components/StatCard.svelte';
|
|
17
|
+
export { default as MarshalToolCard } from './tool-widgets/MarshalToolCard.svelte';
|
|
18
|
+
export { default as SupportEscalateToolCard } from './tool-widgets/SupportEscalateToolCard.svelte';
|
|
19
|
+
export * from './lane-board.ts';
|
|
20
|
+
export * from './lane-board-client.ts';
|
|
21
|
+
export { createRestWorkboardClient, type RestWorkboardClient, type RestWorkboardClientOptions } from './rest-workboard-client.ts';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChF,cAAc,8BAA8B,CAAC;AAG7C,YAAY,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,MAAM,YAAY,CAAC;AAIpB,OAAO,EACN,OAAO,EACP,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAGnG,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Browser components, projections and the host REST adapter. See SPEC.md. */
|
|
2
|
+
// Plugin
|
|
3
|
+
export { default as workboardSveltePlugin } from "./workboard-svelte.plugin.js";
|
|
4
|
+
export * from "./workboard-svelte.plugin.js";
|
|
5
|
+
// Pure formatters / tone helpers
|
|
6
|
+
export { timeAgo, formatDate, statusToneClass, laneToneClass, eventToneClass } from "./workboard-utils.js";
|
|
7
|
+
// Components
|
|
8
|
+
export { default as WorkboardBoard } from './components/WorkboardBoard.svelte';
|
|
9
|
+
export { default as LaneBoard } from './components/LaneBoard.svelte';
|
|
10
|
+
export { default as LaneBoardComposer } from './components/LaneBoardComposer.svelte';
|
|
11
|
+
export { default as LaneBoardFilters } from './components/LaneBoardFilters.svelte';
|
|
12
|
+
export { default as LaneBoardLane } from './components/LaneBoardLane.svelte';
|
|
13
|
+
export { default as LaneBoardSummary } from './components/LaneBoardSummary.svelte';
|
|
14
|
+
export { default as LaneBoardTaskRow } from './components/LaneBoardTaskRow.svelte';
|
|
15
|
+
export { default as RequestsQueue } from './components/RequestsQueue.svelte';
|
|
16
|
+
export { default as StatusBadge } from './components/StatusBadge.svelte';
|
|
17
|
+
export { default as PriorityBadge } from './components/PriorityBadge.svelte';
|
|
18
|
+
export { default as StatCard } from './components/StatCard.svelte';
|
|
19
|
+
export { default as MarshalToolCard } from './tool-widgets/MarshalToolCard.svelte';
|
|
20
|
+
export { default as SupportEscalateToolCard } from './tool-widgets/SupportEscalateToolCard.svelte';
|
|
21
|
+
// Lane board pure helpers & client
|
|
22
|
+
export * from "./lane-board.js";
|
|
23
|
+
export * from "./lane-board-client.js";
|
|
24
|
+
export { createRestWorkboardClient } from "./rest-workboard-client.js";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Compatibility name for the single package-owned browser host adapter. */
|
|
2
|
+
export { createRestWorkboardClient as createLaneBoardClient, type RestWorkboardClient as LaneBoardClient, type RestWorkboardClientOptions as LaneBoardClientOptions } from './rest-workboard-client.ts';
|
|
3
|
+
//# sourceMappingURL=lane-board-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-board-client.d.ts","sourceRoot":"","sources":["../../src/svelte/lane-board-client.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EACN,yBAAyB,IAAI,qBAAqB,EAClD,KAAK,mBAAmB,IAAI,eAAe,EAC3C,KAAK,0BAA0B,IAAI,sBAAsB,EACzD,MAAM,4BAA4B,CAAC"}
|