@agimon-ai/doompi-task 0.0.1-alpha.4 → 0.0.1-alpha.40
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/README.md +110 -15
- package/dist/adapters/node/delegationPlatform.cjs +2 -0
- package/dist/adapters/node/delegationPlatform.cjs.map +1 -0
- package/dist/adapters/node/delegationPlatform.mjs +2 -0
- package/dist/adapters/node/delegationPlatform.mjs.map +1 -0
- package/dist/adapters/pi/extension.cjs +3 -0
- package/dist/adapters/pi/extension.cjs.map +1 -0
- package/dist/adapters/pi/extension.d.cts +10 -0
- package/dist/adapters/pi/extension.d.cts.map +1 -0
- package/dist/adapters/pi/extension.d.mts +10 -0
- package/dist/adapters/pi/extension.d.mts.map +1 -0
- package/dist/adapters/pi/extension.mjs +3 -0
- package/dist/adapters/pi/extension.mjs.map +1 -0
- package/dist/adapters/store/paths.cjs +2 -0
- package/dist/adapters/store/paths.cjs.map +1 -0
- package/dist/adapters/store/paths.d.cts +26 -0
- package/dist/adapters/store/paths.d.cts.map +1 -0
- package/dist/adapters/store/paths.d.mts +26 -0
- package/dist/adapters/store/paths.d.mts.map +1 -0
- package/dist/adapters/store/paths.mjs +2 -0
- package/dist/adapters/store/paths.mjs.map +1 -0
- package/dist/adapters/store/taskStore.cjs +2 -0
- package/dist/adapters/store/taskStore.cjs.map +1 -0
- package/dist/adapters/store/taskStore.d.cts +87 -0
- package/dist/adapters/store/taskStore.d.cts.map +1 -0
- package/dist/adapters/store/taskStore.d.mts +87 -0
- package/dist/adapters/store/taskStore.d.mts.map +1 -0
- package/dist/adapters/store/taskStore.mjs +2 -0
- package/dist/adapters/store/taskStore.mjs.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.cjs +2 -0
- package/dist/adapters/telemetry/logSinkTelemetry.cjs.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts +23 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts +23 -0
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts.map +1 -0
- package/dist/adapters/telemetry/logSinkTelemetry.mjs +2 -0
- package/dist/adapters/telemetry/logSinkTelemetry.mjs.map +1 -0
- package/dist/adapters/webTasksChannel.cjs +2 -0
- package/dist/adapters/webTasksChannel.cjs.map +1 -0
- package/dist/adapters/webTasksChannel.d.cts +20 -0
- package/dist/adapters/webTasksChannel.d.cts.map +1 -0
- package/dist/adapters/webTasksChannel.d.mts +20 -0
- package/dist/adapters/webTasksChannel.d.mts.map +1 -0
- package/dist/adapters/webTasksChannel.mjs +2 -0
- package/dist/adapters/webTasksChannel.mjs.map +1 -0
- package/dist/commands/index.cjs +2 -0
- package/dist/commands/index.cjs.map +1 -0
- package/dist/commands/index.d.cts +14 -0
- package/dist/commands/index.d.cts.map +1 -0
- package/dist/commands/index.d.mts +14 -0
- package/dist/commands/index.d.mts.map +1 -0
- package/dist/commands/index.mjs +2 -0
- package/dist/commands/index.mjs.map +1 -0
- package/dist/commands/task/promptGuidelines.cjs +2 -0
- package/dist/commands/task/promptGuidelines.cjs.map +1 -0
- package/dist/commands/task/promptGuidelines.d.cts +5 -0
- package/dist/commands/task/promptGuidelines.d.cts.map +1 -0
- package/dist/commands/task/promptGuidelines.d.mts +5 -0
- package/dist/commands/task/promptGuidelines.d.mts.map +1 -0
- package/dist/commands/task/promptGuidelines.mjs +2 -0
- package/dist/commands/task/promptGuidelines.mjs.map +1 -0
- package/dist/commands/task/responseEnvelope.cjs +7 -0
- package/dist/commands/task/responseEnvelope.cjs.map +1 -0
- package/dist/commands/task/responseEnvelope.d.cts +51 -0
- package/dist/commands/task/responseEnvelope.d.cts.map +1 -0
- package/dist/commands/task/responseEnvelope.d.mts +51 -0
- package/dist/commands/task/responseEnvelope.d.mts.map +1 -0
- package/dist/commands/task/responseEnvelope.mjs +7 -0
- package/dist/commands/task/responseEnvelope.mjs.map +1 -0
- package/dist/commands/task/taskTool.cjs +3 -0
- package/dist/commands/task/taskTool.cjs.map +1 -0
- package/dist/commands/task/taskTool.d.cts +20 -0
- package/dist/commands/task/taskTool.d.cts.map +1 -0
- package/dist/commands/task/taskTool.d.mts +20 -0
- package/dist/commands/task/taskTool.d.mts.map +1 -0
- package/dist/commands/task/taskTool.mjs +3 -0
- package/dist/commands/task/taskTool.mjs.map +1 -0
- package/dist/commands.cjs +1 -2
- package/dist/commands.d.cts +2 -14
- package/dist/commands.d.mts +2 -14
- package/dist/commands.mjs +1 -2
- package/dist/config.cjs +1 -2
- package/dist/config.d.cts +2 -38
- package/dist/config.d.mts +2 -38
- package/dist/config.mjs +1 -2
- package/dist/delegation/manager.cjs +1 -6
- package/dist/delegation/manager.d.cts +3 -189
- package/dist/delegation/manager.d.mts +3 -189
- package/dist/delegation/manager.mjs +1 -6
- package/dist/extension.cjs +1 -3
- package/dist/extension.d.cts +2 -12
- package/dist/extension.d.mts +2 -12
- package/dist/extension.mjs +1 -3
- package/dist/extensions/pi.cjs +1 -2
- package/dist/extensions/pi.d.cts +1 -1
- package/dist/extensions/pi.d.mts +1 -1
- package/dist/extensions/pi.mjs +1 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +15 -14
- package/dist/index.d.mts +15 -14
- package/dist/index.mjs +1 -1
- package/dist/logSinkTelemetry.cjs +1 -2
- package/dist/logSinkTelemetry.d.cts +3 -51
- package/dist/logSinkTelemetry.d.mts +3 -51
- package/dist/logSinkTelemetry.mjs +1 -2
- package/dist/schemas/task.cjs +2 -0
- package/dist/schemas/task.cjs.map +1 -0
- package/dist/schemas/task.d.cts +103 -0
- package/dist/schemas/task.d.cts.map +1 -0
- package/dist/schemas/task.d.mts +103 -0
- package/dist/schemas/task.d.mts.map +1 -0
- package/dist/schemas/task.mjs +2 -0
- package/dist/schemas/task.mjs.map +1 -0
- package/dist/services/contextContribution.cjs +3 -0
- package/dist/services/contextContribution.cjs.map +1 -0
- package/dist/services/contextContribution.mjs +3 -0
- package/dist/services/contextContribution.mjs.map +1 -0
- package/dist/services/delegation/manager.cjs +6 -0
- package/dist/services/delegation/manager.cjs.map +1 -0
- package/dist/services/delegation/manager.d.cts +192 -0
- package/dist/services/delegation/manager.d.cts.map +1 -0
- package/dist/services/delegation/manager.d.mts +192 -0
- package/dist/services/delegation/manager.d.mts.map +1 -0
- package/dist/services/delegation/manager.mjs +6 -0
- package/dist/services/delegation/manager.mjs.map +1 -0
- package/dist/services/narration/taskNarration.cjs +2 -0
- package/dist/services/narration/taskNarration.cjs.map +1 -0
- package/dist/services/narration/taskNarration.mjs +2 -0
- package/dist/services/narration/taskNarration.mjs.map +1 -0
- package/dist/services/store/invariants.cjs +2 -0
- package/dist/services/store/invariants.cjs.map +1 -0
- package/dist/services/store/invariants.d.cts +24 -0
- package/dist/services/store/invariants.d.cts.map +1 -0
- package/dist/services/store/invariants.d.mts +24 -0
- package/dist/services/store/invariants.d.mts.map +1 -0
- package/dist/services/store/invariants.mjs +2 -0
- package/dist/services/store/invariants.mjs.map +1 -0
- package/dist/services/store/processLiveness.cjs +2 -0
- package/dist/services/store/processLiveness.cjs.map +1 -0
- package/dist/services/store/processLiveness.d.cts +12 -0
- package/dist/services/store/processLiveness.d.cts.map +1 -0
- package/dist/services/store/processLiveness.d.mts +12 -0
- package/dist/services/store/processLiveness.d.mts.map +1 -0
- package/dist/services/store/processLiveness.mjs +2 -0
- package/dist/services/store/processLiveness.mjs.map +1 -0
- package/dist/services/store/reconcile.cjs +2 -0
- package/dist/services/store/reconcile.cjs.map +1 -0
- package/dist/services/store/reconcile.d.cts +34 -0
- package/dist/services/store/reconcile.d.cts.map +1 -0
- package/dist/services/store/reconcile.d.mts +34 -0
- package/dist/services/store/reconcile.d.mts.map +1 -0
- package/dist/services/store/reconcile.mjs +2 -0
- package/dist/services/store/reconcile.mjs.map +1 -0
- package/dist/services/store/reducer.cjs +3 -0
- package/dist/services/store/reducer.cjs.map +1 -0
- package/dist/services/store/reducer.d.cts +72 -0
- package/dist/services/store/reducer.d.cts.map +1 -0
- package/dist/services/store/reducer.d.mts +72 -0
- package/dist/services/store/reducer.d.mts.map +1 -0
- package/dist/services/store/reducer.mjs +3 -0
- package/dist/services/store/reducer.mjs.map +1 -0
- package/dist/services/store/taskGraph.cjs +2 -0
- package/dist/services/store/taskGraph.cjs.map +1 -0
- package/dist/services/store/taskGraph.d.cts +25 -0
- package/dist/services/store/taskGraph.d.cts.map +1 -0
- package/dist/services/store/taskGraph.d.mts +25 -0
- package/dist/services/store/taskGraph.d.mts.map +1 -0
- package/dist/services/store/taskGraph.mjs +2 -0
- package/dist/services/store/taskGraph.mjs.map +1 -0
- package/dist/services/store/types.cjs +2 -0
- package/dist/services/store/types.cjs.map +1 -0
- package/dist/services/store/types.d.cts +177 -0
- package/dist/services/store/types.d.cts.map +1 -0
- package/dist/services/store/types.d.mts +177 -0
- package/dist/services/store/types.d.mts.map +1 -0
- package/dist/services/store/types.mjs +2 -0
- package/dist/services/store/types.mjs.map +1 -0
- package/dist/store/invariants.cjs +1 -2
- package/dist/store/invariants.d.cts +2 -14
- package/dist/store/invariants.d.mts +2 -14
- package/dist/store/invariants.mjs +1 -2
- package/dist/store/paths.cjs +1 -2
- package/dist/store/paths.d.cts +2 -23
- package/dist/store/paths.d.mts +2 -23
- package/dist/store/paths.mjs +1 -2
- package/dist/store/processLiveness.cjs +1 -2
- package/dist/store/processLiveness.d.cts +2 -12
- package/dist/store/processLiveness.d.mts +2 -12
- package/dist/store/processLiveness.mjs +1 -2
- package/dist/store/reconcile.cjs +1 -2
- package/dist/store/reconcile.d.cts +2 -34
- package/dist/store/reconcile.d.mts +2 -34
- package/dist/store/reconcile.mjs +1 -2
- package/dist/store/reducer.cjs +1 -3
- package/dist/store/reducer.d.cts +2 -72
- package/dist/store/reducer.d.mts +2 -72
- package/dist/store/reducer.mjs +1 -3
- package/dist/store/taskGraph.cjs +1 -2
- package/dist/store/taskGraph.d.cts +2 -25
- package/dist/store/taskGraph.d.mts +2 -25
- package/dist/store/taskGraph.mjs +1 -2
- package/dist/store/taskStore.cjs +1 -2
- package/dist/store/taskStore.d.cts +2 -77
- package/dist/store/taskStore.d.mts +2 -77
- package/dist/store/taskStore.mjs +1 -2
- package/dist/store/types.cjs +1 -2
- package/dist/store/types.d.cts +2 -165
- package/dist/store/types.d.mts +2 -165
- package/dist/store/types.mjs +1 -2
- package/dist/tool/promptGuidelines.cjs +1 -2
- package/dist/tool/promptGuidelines.d.cts +2 -5
- package/dist/tool/promptGuidelines.d.mts +2 -5
- package/dist/tool/promptGuidelines.mjs +1 -2
- package/dist/tool/responseEnvelope.cjs +1 -6
- package/dist/tool/responseEnvelope.d.cts +2 -39
- package/dist/tool/responseEnvelope.d.mts +2 -39
- package/dist/tool/responseEnvelope.mjs +1 -6
- package/dist/tool/schema.cjs +1 -2
- package/dist/tool/schema.d.cts +2 -86
- package/dist/tool/schema.d.mts +2 -86
- package/dist/tool/schema.mjs +1 -2
- package/dist/tool/taskTool.cjs +1 -3
- package/dist/tool/taskTool.d.cts +3 -17
- package/dist/tool/taskTool.d.mts +3 -17
- package/dist/tool/taskTool.mjs +1 -3
- package/dist/tui/format.cjs +1 -4
- package/dist/tui/format.d.cts +5 -5
- package/dist/tui/format.d.cts.map +1 -1
- package/dist/tui/format.d.mts +5 -5
- package/dist/tui/format.d.mts.map +1 -1
- package/dist/tui/format.mjs +1 -4
- package/dist/tui/format2.cjs +4 -0
- package/dist/tui/format2.cjs.map +1 -0
- package/dist/tui/format2.d.cts +2 -0
- package/dist/tui/format2.d.mts +2 -0
- package/dist/tui/format2.mjs +4 -0
- package/dist/tui/format2.mjs.map +1 -0
- package/dist/tui/selectors.cjs +1 -2
- package/dist/tui/selectors.d.cts +8 -1
- package/dist/tui/selectors.d.cts.map +1 -1
- package/dist/tui/selectors.d.mts +8 -1
- package/dist/tui/selectors.d.mts.map +1 -1
- package/dist/tui/selectors.mjs +1 -2
- package/dist/tui/selectors2.cjs +2 -0
- package/dist/tui/selectors2.cjs.map +1 -0
- package/dist/tui/selectors2.d.cts +2 -0
- package/dist/tui/selectors2.d.mts +2 -0
- package/dist/tui/selectors2.mjs +2 -0
- package/dist/tui/selectors2.mjs.map +1 -0
- package/dist/tui/taskOverlay.cjs +1 -2
- package/dist/tui/taskOverlay.d.cts +2 -2
- package/dist/tui/taskOverlay.d.cts.map +1 -1
- package/dist/tui/taskOverlay.d.mts +2 -2
- package/dist/tui/taskOverlay.d.mts.map +1 -1
- package/dist/tui/taskOverlay.mjs +1 -2
- package/dist/tui/taskOverlay2.cjs +2 -0
- package/dist/tui/taskOverlay2.cjs.map +1 -0
- package/dist/tui/taskOverlay2.d.cts +2 -0
- package/dist/tui/taskOverlay2.d.mts +2 -0
- package/dist/tui/taskOverlay2.mjs +2 -0
- package/dist/tui/taskOverlay2.mjs.map +1 -0
- package/dist/tui/taskSpace.cjs +1 -5
- package/dist/tui/taskSpace.d.cts +4 -4
- package/dist/tui/taskSpace.d.cts.map +1 -1
- package/dist/tui/taskSpace.d.mts +4 -4
- package/dist/tui/taskSpace.d.mts.map +1 -1
- package/dist/tui/taskSpace.mjs +1 -5
- package/dist/tui/taskSpace2.cjs +5 -0
- package/dist/tui/taskSpace2.cjs.map +1 -0
- package/dist/tui/taskSpace2.d.cts +2 -0
- package/dist/tui/taskSpace2.d.mts +2 -0
- package/dist/tui/taskSpace2.mjs +5 -0
- package/dist/tui/taskSpace2.mjs.map +1 -0
- package/dist/types/config.cjs +2 -0
- package/dist/types/config.cjs.map +1 -0
- package/dist/types/config.d.cts +43 -0
- package/dist/types/config.d.cts.map +1 -0
- package/dist/types/config.d.mts +43 -0
- package/dist/types/config.d.mts.map +1 -0
- package/dist/types/config.mjs +2 -0
- package/dist/types/config.mjs.map +1 -0
- package/dist/types/delegation.cjs +2 -0
- package/dist/types/delegation.cjs.map +1 -0
- package/dist/types/delegation.d.cts +6 -0
- package/dist/types/delegation.d.cts.map +1 -0
- package/dist/types/delegation.d.mts +6 -0
- package/dist/types/delegation.d.mts.map +1 -0
- package/dist/types/delegation.mjs +2 -0
- package/dist/types/delegation.mjs.map +1 -0
- package/dist/types/telemetry.cjs +2 -0
- package/dist/types/telemetry.cjs.map +1 -0
- package/dist/types/telemetry.d.cts +35 -0
- package/dist/types/telemetry.d.cts.map +1 -0
- package/dist/types/telemetry.d.mts +35 -0
- package/dist/types/telemetry.d.mts.map +1 -0
- package/dist/types/telemetry.mjs +2 -0
- package/dist/types/telemetry.mjs.map +1 -0
- package/dist/types/webTasks.cjs +2 -0
- package/dist/types/webTasks.cjs.map +1 -0
- package/dist/types/webTasks.mjs +2 -0
- package/dist/types/webTasks.mjs.map +1 -0
- package/dist/webHub.cjs +1 -0
- package/dist/webHub.d.cts +2 -0
- package/dist/webHub.d.mts +2 -0
- package/dist/webHub.mjs +1 -0
- package/package.json +60 -20
- package/src/types/webTasks.ts +24 -0
- package/web/TaskToolMessage.tsx +119 -0
- package/web/TasksActivitySection.tsx +207 -0
- package/web/index.ts +15 -0
- package/web/taskToolFormat.ts +330 -0
- package/web/tasksStore.ts +72 -0
- package/web/tsconfig.json +23 -0
- package/dist/commands.cjs.map +0 -1
- package/dist/commands.d.cts.map +0 -1
- package/dist/commands.d.mts.map +0 -1
- package/dist/commands.mjs.map +0 -1
- package/dist/config.cjs.map +0 -1
- package/dist/config.d.cts.map +0 -1
- package/dist/config.d.mts.map +0 -1
- package/dist/config.mjs.map +0 -1
- package/dist/delegation/manager.cjs.map +0 -1
- package/dist/delegation/manager.d.cts.map +0 -1
- package/dist/delegation/manager.d.mts.map +0 -1
- package/dist/delegation/manager.mjs.map +0 -1
- package/dist/extension.cjs.map +0 -1
- package/dist/extension.d.cts.map +0 -1
- package/dist/extension.d.mts.map +0 -1
- package/dist/extension.mjs.map +0 -1
- package/dist/extensions/doom.cjs +0 -2
- package/dist/extensions/doom.cjs.map +0 -1
- package/dist/extensions/doom.d.cts +0 -6
- package/dist/extensions/doom.d.cts.map +0 -1
- package/dist/extensions/doom.d.mts +0 -7
- package/dist/extensions/doom.d.mts.map +0 -1
- package/dist/extensions/doom.mjs +0 -2
- package/dist/extensions/doom.mjs.map +0 -1
- package/dist/extensions/pi.cjs.map +0 -1
- package/dist/extensions/pi.mjs.map +0 -1
- package/dist/logSinkTelemetry.cjs.map +0 -1
- package/dist/logSinkTelemetry.d.cts.map +0 -1
- package/dist/logSinkTelemetry.d.mts.map +0 -1
- package/dist/logSinkTelemetry.mjs.map +0 -1
- package/dist/store/invariants.cjs.map +0 -1
- package/dist/store/invariants.d.cts.map +0 -1
- package/dist/store/invariants.d.mts.map +0 -1
- package/dist/store/invariants.mjs.map +0 -1
- package/dist/store/paths.cjs.map +0 -1
- package/dist/store/paths.d.cts.map +0 -1
- package/dist/store/paths.d.mts.map +0 -1
- package/dist/store/paths.mjs.map +0 -1
- package/dist/store/processLiveness.cjs.map +0 -1
- package/dist/store/processLiveness.d.cts.map +0 -1
- package/dist/store/processLiveness.d.mts.map +0 -1
- package/dist/store/processLiveness.mjs.map +0 -1
- package/dist/store/reconcile.cjs.map +0 -1
- package/dist/store/reconcile.d.cts.map +0 -1
- package/dist/store/reconcile.d.mts.map +0 -1
- package/dist/store/reconcile.mjs.map +0 -1
- package/dist/store/reducer.cjs.map +0 -1
- package/dist/store/reducer.d.cts.map +0 -1
- package/dist/store/reducer.d.mts.map +0 -1
- package/dist/store/reducer.mjs.map +0 -1
- package/dist/store/taskGraph.cjs.map +0 -1
- package/dist/store/taskGraph.d.cts.map +0 -1
- package/dist/store/taskGraph.d.mts.map +0 -1
- package/dist/store/taskGraph.mjs.map +0 -1
- package/dist/store/taskStore.cjs.map +0 -1
- package/dist/store/taskStore.d.cts.map +0 -1
- package/dist/store/taskStore.d.mts.map +0 -1
- package/dist/store/taskStore.mjs.map +0 -1
- package/dist/store/types.cjs.map +0 -1
- package/dist/store/types.d.cts.map +0 -1
- package/dist/store/types.d.mts.map +0 -1
- package/dist/store/types.mjs.map +0 -1
- package/dist/tool/promptGuidelines.cjs.map +0 -1
- package/dist/tool/promptGuidelines.d.cts.map +0 -1
- package/dist/tool/promptGuidelines.d.mts.map +0 -1
- package/dist/tool/promptGuidelines.mjs.map +0 -1
- package/dist/tool/responseEnvelope.cjs.map +0 -1
- package/dist/tool/responseEnvelope.d.cts.map +0 -1
- package/dist/tool/responseEnvelope.d.mts.map +0 -1
- package/dist/tool/responseEnvelope.mjs.map +0 -1
- package/dist/tool/schema.cjs.map +0 -1
- package/dist/tool/schema.d.cts.map +0 -1
- package/dist/tool/schema.d.mts.map +0 -1
- package/dist/tool/schema.mjs.map +0 -1
- package/dist/tool/taskTool.cjs.map +0 -1
- package/dist/tool/taskTool.d.cts.map +0 -1
- package/dist/tool/taskTool.d.mts.map +0 -1
- package/dist/tool/taskTool.mjs.map +0 -1
- package/dist/tui/format.cjs.map +0 -1
- package/dist/tui/format.mjs.map +0 -1
- package/dist/tui/selectors.cjs.map +0 -1
- package/dist/tui/selectors.mjs.map +0 -1
- package/dist/tui/taskOverlay.cjs.map +0 -1
- package/dist/tui/taskOverlay.mjs.map +0 -1
- package/dist/tui/taskSpace.cjs.map +0 -1
- package/dist/tui/taskSpace.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;;;;cAQa;cACA;cACA;cACA;cACA;cAEA;cACA;cACA;cACA;;;cAGA;cACA;UAKI;EACf;EACA;EACA;EACA;EACA;;;iBAQc,kBAAkB,iBAAiB;;iBA+BnC,kBAAkB,MAAK,OAAO;;iBAO9B,YAAY,MAAK,OAAO;;iBAMxB,cAAc,MAAK,OAAO;;iBAM1B,uBAAuB,MAAK,OAAO;;iBAMnC,mBAAmB,MAAK,OAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=`DOOM_TASK_MAX_WIDGET_LINES`,t=`DOOM_TASK_MAX_TASKS`,n=`DOOM_TASK_COLLAPSE_KEY`,r=`DOOM_TASK_STORE_TTL_MS`,i=`DOOM_TASK_DELEGATION_TIMEOUT_MS`,a=12,o=15,s=`ctrl+shift+t`,c=2592e6,l=12e5,u=`off`;function d(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function f(e){let t=d(e),n=typeof t.maxWidgetLines==`number`&&Number.isFinite(t.maxWidgetLines)?Math.min(Math.max(t.maxWidgetLines,3),60):12,r=typeof t.maxTasks==`number`&&Number.isSafeInteger(t.maxTasks)&&t.maxTasks>0?t.maxTasks:15,i=typeof t.storeTtlMs==`number`&&Number.isFinite(t.storeTtlMs)&&t.storeTtlMs>0?t.storeTtlMs:c,a=typeof t.delegationTimeoutMs==`number`&&Number.isFinite(t.delegationTimeoutMs)&&t.delegationTimeoutMs>0?t.delegationTimeoutMs:l;return{maxWidgetLines:n,maxTasks:r,storeTtlMs:i,collapseKey:typeof t.collapseKey==`string`&&t.collapseKey.trim()?t.collapseKey.trim().toLowerCase()===`off`?`off`:t.collapseKey.trim():s,delegationTimeoutMs:a}}function p(e=process.env){let t=Number.parseInt(e.DOOM_TASK_MAX_WIDGET_LINES??``,10);return Number.isFinite(t)?Math.min(Math.max(t,3),60):12}function m(e=process.env){let n=Number(e[t]);return Number.isSafeInteger(n)&&n>0?n:15}function h(e=process.env){let t=Number(e[r]);return Number.isFinite(t)&&t>0?t:c}function g(e=process.env){let t=Number(e[i]);return Number.isFinite(t)&&t>0?t:l}function _(e=process.env){let t=e[n]?.trim();return t?t.toLowerCase()===`off`?`off`:t:s}export{n as COLLAPSE_KEY_ENV,u as COLLAPSE_KEY_OFF,s as DEFAULT_COLLAPSE_KEY,l as DEFAULT_DELEGATION_TIMEOUT_MS,o as DEFAULT_MAX_TASKS,a as DEFAULT_MAX_WIDGET_LINES,c as DEFAULT_STORE_TTL_MS,i as DELEGATION_TIMEOUT_MS_ENV,t as MAX_TASKS_ENV,e as MAX_WIDGET_LINES_ENV,r as STORE_TTL_MS_ENV,g as getDelegationTimeoutMs,m as getMaxTasks,p as getMaxWidgetLines,h as getStoreTtlMs,f as parsePiTaskConfig,_ as resolveCollapseKey};
|
|
2
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","names":[],"sources":["../../src/types/config.ts"],"sourcesContent":["/**\n * Extension configuration, read from the environment.\n *\n * Env rather than a config file: doom-pi already carries per-launch state to Pi\n * through env vars, so this keeps doom-task consistent with how the harness\n * configures the rest of the extension set.\n */\n\nexport const MAX_WIDGET_LINES_ENV = 'DOOM_TASK_MAX_WIDGET_LINES';\nexport const MAX_TASKS_ENV = 'DOOM_TASK_MAX_TASKS';\nexport const COLLAPSE_KEY_ENV = 'DOOM_TASK_COLLAPSE_KEY';\nexport const STORE_TTL_MS_ENV = 'DOOM_TASK_STORE_TTL_MS';\nexport const DELEGATION_TIMEOUT_MS_ENV = 'DOOM_TASK_DELEGATION_TIMEOUT_MS';\n\nexport const DEFAULT_MAX_WIDGET_LINES = 12;\nexport const DEFAULT_MAX_TASKS = 15;\nexport const DEFAULT_COLLAPSE_KEY = 'ctrl+shift+t';\nexport const DEFAULT_STORE_TTL_MS = 30 * 24 * 60 * 60 * 1000;\n/** Deliberately under the subagents auto-drain ceiling (30 min) so a headless\n * session still gets the failure and a model turn before draining gives up. */\nexport const DEFAULT_DELEGATION_TIMEOUT_MS = 20 * 60 * 1000;\nexport const COLLAPSE_KEY_OFF = 'off';\n\nconst MIN_WIDGET_LINES = 3;\nconst MAX_WIDGET_LINES = 60;\n\nexport interface PiTaskConfig {\n maxWidgetLines: number;\n maxTasks: number;\n storeTtlMs: number;\n collapseKey: string;\n delegationTimeoutMs: number;\n}\n\nfunction configRecord(value: unknown): Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n}\n\n/** Parse configuration only after the Pi host has applied its project-trust policy. */\nexport function parsePiTaskConfig(value: unknown): PiTaskConfig {\n const config = configRecord(value);\n const maxWidgetLines =\n typeof config.maxWidgetLines === 'number' && Number.isFinite(config.maxWidgetLines)\n ? Math.min(Math.max(config.maxWidgetLines, MIN_WIDGET_LINES), MAX_WIDGET_LINES)\n : DEFAULT_MAX_WIDGET_LINES;\n const maxTasks =\n typeof config.maxTasks === 'number' && Number.isSafeInteger(config.maxTasks) && config.maxTasks > 0\n ? config.maxTasks\n : DEFAULT_MAX_TASKS;\n const storeTtlMs =\n typeof config.storeTtlMs === 'number' && Number.isFinite(config.storeTtlMs) && config.storeTtlMs > 0\n ? config.storeTtlMs\n : DEFAULT_STORE_TTL_MS;\n const delegationTimeoutMs =\n typeof config.delegationTimeoutMs === 'number' &&\n Number.isFinite(config.delegationTimeoutMs) &&\n config.delegationTimeoutMs > 0\n ? config.delegationTimeoutMs\n : DEFAULT_DELEGATION_TIMEOUT_MS;\n const collapseKey =\n typeof config.collapseKey === 'string' && config.collapseKey.trim()\n ? config.collapseKey.trim().toLowerCase() === COLLAPSE_KEY_OFF\n ? COLLAPSE_KEY_OFF\n : config.collapseKey.trim()\n : DEFAULT_COLLAPSE_KEY;\n\n return { maxWidgetLines, maxTasks, storeTtlMs, collapseKey, delegationTimeoutMs };\n}\n\n/** Rows the overlay may use for content, clamped to a sane range. */\nexport function getMaxWidgetLines(env: NodeJS.ProcessEnv = process.env): number {\n const raw = Number.parseInt(env[MAX_WIDGET_LINES_ENV] ?? '', 10);\n if (!Number.isFinite(raw)) return DEFAULT_MAX_WIDGET_LINES;\n return Math.min(Math.max(raw, MIN_WIDGET_LINES), MAX_WIDGET_LINES);\n}\n\n/** Maximum number of non-deleted tasks retained on one board. */\nexport function getMaxTasks(env: NodeJS.ProcessEnv = process.env): number {\n const raw = Number(env[MAX_TASKS_ENV]);\n return Number.isSafeInteger(raw) && raw > 0 ? raw : DEFAULT_MAX_TASKS;\n}\n\n/** Retention window for inactive session-tree stores. */\nexport function getStoreTtlMs(env: NodeJS.ProcessEnv = process.env): number {\n const raw = Number(env[STORE_TTL_MS_ENV]);\n return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_STORE_TTL_MS;\n}\n\n/** How long a delegated run may go without reporting a result. */\nexport function getDelegationTimeoutMs(env: NodeJS.ProcessEnv = process.env): number {\n const raw = Number(env[DELEGATION_TIMEOUT_MS_ENV]);\n return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_DELEGATION_TIMEOUT_MS;\n}\n\n/** Collapse shortcut, or the `off` sentinel when the user disabled it. */\nexport function resolveCollapseKey(env: NodeJS.ProcessEnv = process.env): string {\n const configured = env[COLLAPSE_KEY_ENV]?.trim();\n if (!configured) return DEFAULT_COLLAPSE_KEY;\n return configured.toLowerCase() === COLLAPSE_KEY_OFF ? COLLAPSE_KEY_OFF : configured;\n}\n"],"mappings":"AAQA,MAAa,EAAuB,6BACvB,EAAgB,sBAChB,EAAmB,yBACnB,EAAmB,yBACnB,EAA4B,kCAE5B,EAA2B,GAC3B,EAAoB,GACpB,EAAuB,eACvB,EAAuB,OAGvB,EAAgC,KAChC,EAAmB,MAahC,SAAS,EAAa,EAAyC,CAC7D,OAAyB,OAAO,GAAU,UAAnC,GAA+C,CAAC,MAAM,QAAQ,CAAK,EAAK,EAAoC,CAAC,CACtH,CAGA,SAAgB,EAAkB,EAA8B,CAC9D,IAAM,EAAS,EAAa,CAAK,EAC3B,EACJ,OAAO,EAAO,gBAAmB,UAAY,OAAO,SAAS,EAAO,cAAc,EAC9E,KAAK,IAAI,KAAK,IAAI,EAAO,eAAgB,CAAgB,EAAG,EAAgB,EAAA,GAE5E,EACJ,OAAO,EAAO,UAAa,UAAY,OAAO,cAAc,EAAO,QAAQ,GAAK,EAAO,SAAW,EAC9F,EAAO,SAAA,GAEP,EACJ,OAAO,EAAO,YAAe,UAAY,OAAO,SAAS,EAAO,UAAU,GAAK,EAAO,WAAa,EAC/F,EAAO,WACP,EACA,EACJ,OAAO,EAAO,qBAAwB,UACtC,OAAO,SAAS,EAAO,mBAAmB,GAC1C,EAAO,oBAAsB,EACzB,EAAO,oBACP,EAQN,MAAO,CAAE,iBAAgB,WAAU,aAAY,YAN7C,OAAO,EAAO,aAAgB,UAAY,EAAO,YAAY,KAAK,EAC9D,EAAO,YAAY,KAAK,CAAC,CAAC,YAAY,IAAA,MAAA,MAEpC,EAAO,YAAY,KAAK,EAC1B,EAEsD,qBAAoB,CAClF,CAGA,SAAgB,EAAkB,EAAyB,QAAQ,IAAa,CAC9E,IAAM,EAAM,OAAO,SAAS,EAAA,4BAA6B,GAAI,EAAE,EAE/D,OADK,OAAO,SAAS,CAAG,EACjB,KAAK,IAAI,KAAK,IAAI,EAAK,CAAgB,EAAG,EAAgB,EADtC,EAE7B,CAGA,SAAgB,EAAY,EAAyB,QAAQ,IAAa,CACxE,IAAM,EAAM,OAAO,EAAI,EAAc,EACrC,OAAO,OAAO,cAAc,CAAG,GAAK,EAAM,EAAI,EAAA,EAChD,CAGA,SAAgB,EAAc,EAAyB,QAAQ,IAAa,CAC1E,IAAM,EAAM,OAAO,EAAI,EAAiB,EACxC,OAAO,OAAO,SAAS,CAAG,GAAK,EAAM,EAAI,EAAM,CACjD,CAGA,SAAgB,EAAuB,EAAyB,QAAQ,IAAa,CACnF,IAAM,EAAM,OAAO,EAAI,EAA0B,EACjD,OAAO,OAAO,SAAS,CAAG,GAAK,EAAM,EAAI,EAAM,CACjD,CAGA,SAAgB,EAAmB,EAAyB,QAAQ,IAAa,CAC/E,IAAM,EAAa,EAAI,EAAiB,EAAE,KAAK,EAE/C,OADK,EACE,EAAW,YAAY,IAAA,MAAA,MAA4C,EADlD,CAE1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.cjs","names":[],"sources":["../../src/types/delegation.ts"],"sourcesContent":["/** Most context files carried in a delegation brief. */\nexport const MAX_BRIEF_FILES = 12;\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.d.cts","names":[],"sources":["../../src/types/delegation.ts"],"mappings":";;cACa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.d.mts","names":[],"sources":["../../src/types/delegation.ts"],"mappings":";;cACa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation.mjs","names":[],"sources":["../../src/types/delegation.ts"],"sourcesContent":["/** Most context files carried in a delegation brief. */\nexport const MAX_BRIEF_FILES = 12;\n"],"mappings":"AACA,MAAa,EAAkB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={notificationFailed:`doom_task.notification_failed`,storeReadFailed:`doom_task.store_read_failed`,storeLockTimeout:`doom_task.store_lock_timeout`,storeLockBreakFailed:`doom_task.store_lock_break_failed`,storeWatchFailed:`doom_task.store_watch_failed`,storeListenerFailed:`doom_task.store_listener_failed`,storeCommitListenerFailed:`doom_task.store_commit_listener_failed`,storeSweepFailed:`doom_task.store_sweep_failed`,sessionStartFailed:`doom_task.session_start_failed`,toolFailed:`doom_task.tool_failed`,delegationRequestFailed:`doom_task.delegation_request_failed`,delegationStartFailed:`doom_task.delegation_start_failed`,delegationResponseFailed:`doom_task.delegation_response_failed`,delegationSettleFailed:`doom_task.delegation_settle_failed`,delegationTimedOut:`doom_task.delegation_timed_out`,delegationOrphaned:`doom_task.delegation_orphaned`,delegationAssigned:`doom_task.delegation_assigned`,delegationCompleted:`doom_task.delegation_completed`};exports.TASK_EVENT=e;
|
|
2
|
+
//# sourceMappingURL=telemetry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.cjs","names":[],"sources":["../../src/types/telemetry.ts"],"sourcesContent":["export const TASK_EVENT = {\n notificationFailed: 'doom_task.notification_failed',\n storeReadFailed: 'doom_task.store_read_failed',\n storeLockTimeout: 'doom_task.store_lock_timeout',\n storeLockBreakFailed: 'doom_task.store_lock_break_failed',\n storeWatchFailed: 'doom_task.store_watch_failed',\n storeListenerFailed: 'doom_task.store_listener_failed',\n storeCommitListenerFailed: 'doom_task.store_commit_listener_failed',\n storeSweepFailed: 'doom_task.store_sweep_failed',\n sessionStartFailed: 'doom_task.session_start_failed',\n toolFailed: 'doom_task.tool_failed',\n delegationRequestFailed: 'doom_task.delegation_request_failed',\n delegationStartFailed: 'doom_task.delegation_start_failed',\n delegationResponseFailed: 'doom_task.delegation_response_failed',\n delegationSettleFailed: 'doom_task.delegation_settle_failed',\n delegationTimedOut: 'doom_task.delegation_timed_out',\n delegationOrphaned: 'doom_task.delegation_orphaned',\n // Info-level lifecycle events. These are the measurement pair: the shape of\n // the brief that went out, and the cost of the run it produced.\n delegationAssigned: 'doom_task.delegation_assigned',\n delegationCompleted: 'doom_task.delegation_completed',\n} as const;\n\nexport type TaskEventName = (typeof TASK_EVENT)[keyof typeof TASK_EVENT];\nexport type TaskErrorAttributes = Record<string, string | number | boolean>;\nexport type TaskErrorSink = (event: TaskEventName, error: unknown, attributes?: TaskErrorAttributes) => void;\nexport type TaskEventSink = (event: TaskEventName, attributes?: TaskErrorAttributes) => void;\n\n/** Host-neutral telemetry port consumed by Task services and store adapters. */\nexport interface TaskFailureReporter {\n error: TaskErrorSink;\n warn: TaskErrorSink;\n /** Info-level event sink. Required so an unwired reporter fails to compile. */\n event: TaskEventSink;\n}\n"],"mappings":"AAAA,MAAa,EAAa,CACxB,mBAAoB,gCACpB,gBAAiB,8BACjB,iBAAkB,+BAClB,qBAAsB,oCACtB,iBAAkB,+BAClB,oBAAqB,kCACrB,0BAA2B,yCAC3B,iBAAkB,+BAClB,mBAAoB,iCACpB,WAAY,wBACZ,wBAAyB,sCACzB,sBAAuB,oCACvB,yBAA0B,uCAC1B,uBAAwB,qCACxB,mBAAoB,iCACpB,mBAAoB,gCAGpB,mBAAoB,gCACpB,oBAAqB,gCACvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/types/telemetry.d.ts
|
|
2
|
+
declare const TASK_EVENT: {
|
|
3
|
+
readonly notificationFailed: 'doom_task.notification_failed';
|
|
4
|
+
readonly storeReadFailed: 'doom_task.store_read_failed';
|
|
5
|
+
readonly storeLockTimeout: 'doom_task.store_lock_timeout';
|
|
6
|
+
readonly storeLockBreakFailed: 'doom_task.store_lock_break_failed';
|
|
7
|
+
readonly storeWatchFailed: 'doom_task.store_watch_failed';
|
|
8
|
+
readonly storeListenerFailed: 'doom_task.store_listener_failed';
|
|
9
|
+
readonly storeCommitListenerFailed: 'doom_task.store_commit_listener_failed';
|
|
10
|
+
readonly storeSweepFailed: 'doom_task.store_sweep_failed';
|
|
11
|
+
readonly sessionStartFailed: 'doom_task.session_start_failed';
|
|
12
|
+
readonly toolFailed: 'doom_task.tool_failed';
|
|
13
|
+
readonly delegationRequestFailed: 'doom_task.delegation_request_failed';
|
|
14
|
+
readonly delegationStartFailed: 'doom_task.delegation_start_failed';
|
|
15
|
+
readonly delegationResponseFailed: 'doom_task.delegation_response_failed';
|
|
16
|
+
readonly delegationSettleFailed: 'doom_task.delegation_settle_failed';
|
|
17
|
+
readonly delegationTimedOut: 'doom_task.delegation_timed_out';
|
|
18
|
+
readonly delegationOrphaned: 'doom_task.delegation_orphaned';
|
|
19
|
+
readonly delegationAssigned: 'doom_task.delegation_assigned';
|
|
20
|
+
readonly delegationCompleted: 'doom_task.delegation_completed';
|
|
21
|
+
};
|
|
22
|
+
type TaskEventName = (typeof TASK_EVENT)[keyof typeof TASK_EVENT];
|
|
23
|
+
type TaskErrorAttributes = Record<string, string | number | boolean>;
|
|
24
|
+
type TaskErrorSink = (event: TaskEventName, error: unknown, attributes?: TaskErrorAttributes) => void;
|
|
25
|
+
type TaskEventSink = (event: TaskEventName, attributes?: TaskErrorAttributes) => void;
|
|
26
|
+
/** Host-neutral telemetry port consumed by Task services and store adapters. */
|
|
27
|
+
interface TaskFailureReporter {
|
|
28
|
+
error: TaskErrorSink;
|
|
29
|
+
warn: TaskErrorSink;
|
|
30
|
+
/** Info-level event sink. Required so an unwired reporter fails to compile. */
|
|
31
|
+
event: TaskEventSink;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { TASK_EVENT, TaskErrorAttributes, TaskErrorSink, TaskEventName, TaskEventSink, TaskFailureReporter };
|
|
35
|
+
//# sourceMappingURL=telemetry.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.cts","names":[],"sources":["../../src/types/telemetry.ts"],"mappings":";cAAa;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WAGA;WACA;;KAGU,wBAAwB,yBAAyB;KACjD,sBAAsB;KACtB,iBAAiB,OAAO,eAAe,gBAAgB,aAAa;KACpE,iBAAiB,OAAO,eAAe,aAAa;;UAG/C;EACf,OAAO;EACP,MAAM;;EAEN,OAAO"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/types/telemetry.d.ts
|
|
2
|
+
declare const TASK_EVENT: {
|
|
3
|
+
readonly notificationFailed: 'doom_task.notification_failed';
|
|
4
|
+
readonly storeReadFailed: 'doom_task.store_read_failed';
|
|
5
|
+
readonly storeLockTimeout: 'doom_task.store_lock_timeout';
|
|
6
|
+
readonly storeLockBreakFailed: 'doom_task.store_lock_break_failed';
|
|
7
|
+
readonly storeWatchFailed: 'doom_task.store_watch_failed';
|
|
8
|
+
readonly storeListenerFailed: 'doom_task.store_listener_failed';
|
|
9
|
+
readonly storeCommitListenerFailed: 'doom_task.store_commit_listener_failed';
|
|
10
|
+
readonly storeSweepFailed: 'doom_task.store_sweep_failed';
|
|
11
|
+
readonly sessionStartFailed: 'doom_task.session_start_failed';
|
|
12
|
+
readonly toolFailed: 'doom_task.tool_failed';
|
|
13
|
+
readonly delegationRequestFailed: 'doom_task.delegation_request_failed';
|
|
14
|
+
readonly delegationStartFailed: 'doom_task.delegation_start_failed';
|
|
15
|
+
readonly delegationResponseFailed: 'doom_task.delegation_response_failed';
|
|
16
|
+
readonly delegationSettleFailed: 'doom_task.delegation_settle_failed';
|
|
17
|
+
readonly delegationTimedOut: 'doom_task.delegation_timed_out';
|
|
18
|
+
readonly delegationOrphaned: 'doom_task.delegation_orphaned';
|
|
19
|
+
readonly delegationAssigned: 'doom_task.delegation_assigned';
|
|
20
|
+
readonly delegationCompleted: 'doom_task.delegation_completed';
|
|
21
|
+
};
|
|
22
|
+
type TaskEventName = (typeof TASK_EVENT)[keyof typeof TASK_EVENT];
|
|
23
|
+
type TaskErrorAttributes = Record<string, string | number | boolean>;
|
|
24
|
+
type TaskErrorSink = (event: TaskEventName, error: unknown, attributes?: TaskErrorAttributes) => void;
|
|
25
|
+
type TaskEventSink = (event: TaskEventName, attributes?: TaskErrorAttributes) => void;
|
|
26
|
+
/** Host-neutral telemetry port consumed by Task services and store adapters. */
|
|
27
|
+
interface TaskFailureReporter {
|
|
28
|
+
error: TaskErrorSink;
|
|
29
|
+
warn: TaskErrorSink;
|
|
30
|
+
/** Info-level event sink. Required so an unwired reporter fails to compile. */
|
|
31
|
+
event: TaskEventSink;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { TASK_EVENT, TaskErrorAttributes, TaskErrorSink, TaskEventName, TaskEventSink, TaskFailureReporter };
|
|
35
|
+
//# sourceMappingURL=telemetry.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.mts","names":[],"sources":["../../src/types/telemetry.ts"],"mappings":";cAAa;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WAGA;WACA;;KAGU,wBAAwB,yBAAyB;KACjD,sBAAsB;KACtB,iBAAiB,OAAO,eAAe,gBAAgB,aAAa;KACpE,iBAAiB,OAAO,eAAe,aAAa;;UAG/C;EACf,OAAO;EACP,MAAM;;EAEN,OAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={notificationFailed:`doom_task.notification_failed`,storeReadFailed:`doom_task.store_read_failed`,storeLockTimeout:`doom_task.store_lock_timeout`,storeLockBreakFailed:`doom_task.store_lock_break_failed`,storeWatchFailed:`doom_task.store_watch_failed`,storeListenerFailed:`doom_task.store_listener_failed`,storeCommitListenerFailed:`doom_task.store_commit_listener_failed`,storeSweepFailed:`doom_task.store_sweep_failed`,sessionStartFailed:`doom_task.session_start_failed`,toolFailed:`doom_task.tool_failed`,delegationRequestFailed:`doom_task.delegation_request_failed`,delegationStartFailed:`doom_task.delegation_start_failed`,delegationResponseFailed:`doom_task.delegation_response_failed`,delegationSettleFailed:`doom_task.delegation_settle_failed`,delegationTimedOut:`doom_task.delegation_timed_out`,delegationOrphaned:`doom_task.delegation_orphaned`,delegationAssigned:`doom_task.delegation_assigned`,delegationCompleted:`doom_task.delegation_completed`};export{e as TASK_EVENT};
|
|
2
|
+
//# sourceMappingURL=telemetry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.mjs","names":[],"sources":["../../src/types/telemetry.ts"],"sourcesContent":["export const TASK_EVENT = {\n notificationFailed: 'doom_task.notification_failed',\n storeReadFailed: 'doom_task.store_read_failed',\n storeLockTimeout: 'doom_task.store_lock_timeout',\n storeLockBreakFailed: 'doom_task.store_lock_break_failed',\n storeWatchFailed: 'doom_task.store_watch_failed',\n storeListenerFailed: 'doom_task.store_listener_failed',\n storeCommitListenerFailed: 'doom_task.store_commit_listener_failed',\n storeSweepFailed: 'doom_task.store_sweep_failed',\n sessionStartFailed: 'doom_task.session_start_failed',\n toolFailed: 'doom_task.tool_failed',\n delegationRequestFailed: 'doom_task.delegation_request_failed',\n delegationStartFailed: 'doom_task.delegation_start_failed',\n delegationResponseFailed: 'doom_task.delegation_response_failed',\n delegationSettleFailed: 'doom_task.delegation_settle_failed',\n delegationTimedOut: 'doom_task.delegation_timed_out',\n delegationOrphaned: 'doom_task.delegation_orphaned',\n // Info-level lifecycle events. These are the measurement pair: the shape of\n // the brief that went out, and the cost of the run it produced.\n delegationAssigned: 'doom_task.delegation_assigned',\n delegationCompleted: 'doom_task.delegation_completed',\n} as const;\n\nexport type TaskEventName = (typeof TASK_EVENT)[keyof typeof TASK_EVENT];\nexport type TaskErrorAttributes = Record<string, string | number | boolean>;\nexport type TaskErrorSink = (event: TaskEventName, error: unknown, attributes?: TaskErrorAttributes) => void;\nexport type TaskEventSink = (event: TaskEventName, attributes?: TaskErrorAttributes) => void;\n\n/** Host-neutral telemetry port consumed by Task services and store adapters. */\nexport interface TaskFailureReporter {\n error: TaskErrorSink;\n warn: TaskErrorSink;\n /** Info-level event sink. Required so an unwired reporter fails to compile. */\n event: TaskEventSink;\n}\n"],"mappings":"AAAA,MAAa,EAAa,CACxB,mBAAoB,gCACpB,gBAAiB,8BACjB,iBAAkB,+BAClB,qBAAsB,oCACtB,iBAAkB,+BAClB,oBAAqB,kCACrB,0BAA2B,yCAC3B,iBAAkB,+BAClB,mBAAoB,iCACpB,WAAY,wBACZ,wBAAyB,sCACzB,sBAAuB,oCACvB,yBAA0B,uCAC1B,uBAAwB,qCACxB,mBAAoB,iCACpB,mBAAoB,gCAGpB,mBAAoB,gCACpB,oBAAqB,gCACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webTasks.cjs","names":[],"sources":["../../src/types/webTasks.ts"],"sourcesContent":["/** Browser-safe task view published by the cockpit hub channel. */\nexport const TASKS_CHANNEL_TYPE = 'task_graph';\n\nexport type WebTaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'deleted';\n\nexport interface WebTask {\n id: number;\n subject: string;\n description?: string;\n activeForm?: string;\n status: WebTaskStatus;\n blockedBy: number[];\n owner?: string;\n updatedAt?: string;\n delegation?: {\n agent?: string;\n state?: string;\n };\n}\n\nexport interface WebTasksPayload {\n tasks: WebTask[];\n rev: number;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webTasks.mjs","names":[],"sources":["../../src/types/webTasks.ts"],"sourcesContent":["/** Browser-safe task view published by the cockpit hub channel. */\nexport const TASKS_CHANNEL_TYPE = 'task_graph';\n\nexport type WebTaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'deleted';\n\nexport interface WebTask {\n id: number;\n subject: string;\n description?: string;\n activeForm?: string;\n status: WebTaskStatus;\n blockedBy: number[];\n owner?: string;\n updatedAt?: string;\n delegation?: {\n agent?: string;\n state?: string;\n };\n}\n\nexport interface WebTasksPayload {\n tasks: WebTask[];\n rev: number;\n}\n"],"mappings":"AACA,MAAa,EAAqB"}
|
package/dist/webHub.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters/webTasksChannel.cjs");exports.createTasksChannel=e.createTasksChannel,exports.webHubChannels=e.webHubChannels;
|
package/dist/webHub.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createTasksChannel as e,webHubChannels as t}from"./adapters/webTasksChannel.mjs";export{e as createTasksChannel,t as webHubChannels};
|
package/package.json
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-task",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.1-alpha.40",
|
|
4
|
+
"description": "Persistent, dependency-aware task graphs and subagent delegation for Pi coding sessions.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"coding-agent",
|
|
8
|
+
"delegation",
|
|
9
|
+
"developer-tools",
|
|
10
|
+
"doompi",
|
|
11
|
+
"pi-coding-agent",
|
|
12
|
+
"pi-package",
|
|
13
|
+
"subagents",
|
|
14
|
+
"task-graph",
|
|
15
|
+
"task-management"
|
|
16
|
+
],
|
|
5
17
|
"homepage": "https://agimon.ai",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/AgiFlow/doompi/issues"
|
|
20
|
+
},
|
|
6
21
|
"license": "MIT",
|
|
7
22
|
"author": "Vuong Ngo",
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/AgiFlow/doompi.git",
|
|
26
|
+
"directory": "layers/task/doompi-task"
|
|
27
|
+
},
|
|
8
28
|
"files": [
|
|
9
29
|
"dist",
|
|
30
|
+
"web",
|
|
31
|
+
"src/types/webTasks.ts",
|
|
10
32
|
"package.json"
|
|
11
33
|
],
|
|
12
34
|
"type": "module",
|
|
@@ -44,11 +66,6 @@
|
|
|
44
66
|
"import": "./dist/extensions/pi.mjs",
|
|
45
67
|
"require": "./dist/extensions/pi.cjs"
|
|
46
68
|
},
|
|
47
|
-
"./extensions/doom": {
|
|
48
|
-
"types": "./dist/extensions/doom.d.mts",
|
|
49
|
-
"import": "./dist/extensions/doom.mjs",
|
|
50
|
-
"require": "./dist/extensions/doom.cjs"
|
|
51
|
-
},
|
|
52
69
|
"./logSinkTelemetry": {
|
|
53
70
|
"types": "./dist/logSinkTelemetry.d.mts",
|
|
54
71
|
"import": "./dist/logSinkTelemetry.mjs",
|
|
@@ -114,6 +131,11 @@
|
|
|
114
131
|
"import": "./dist/tool/taskTool.mjs",
|
|
115
132
|
"require": "./dist/tool/taskTool.cjs"
|
|
116
133
|
},
|
|
134
|
+
"./web-hub": {
|
|
135
|
+
"types": "./dist/webHub.d.mts",
|
|
136
|
+
"import": "./dist/webHub.mjs",
|
|
137
|
+
"require": "./dist/webHub.cjs"
|
|
138
|
+
},
|
|
117
139
|
"./tui/format": {
|
|
118
140
|
"types": "./dist/tui/format.d.mts",
|
|
119
141
|
"import": "./dist/tui/format.mjs",
|
|
@@ -141,23 +163,30 @@
|
|
|
141
163
|
"registry": "https://registry.npmjs.org/"
|
|
142
164
|
},
|
|
143
165
|
"dependencies": {
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"@agimon-ai/doompi-
|
|
147
|
-
"@agimon-ai/doompi-
|
|
166
|
+
"@deepseek-ai/cordis": "4.0.1",
|
|
167
|
+
"typebox": "1.3.16",
|
|
168
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.40",
|
|
169
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.40",
|
|
170
|
+
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.40",
|
|
171
|
+
"@agimon-ai/doompi-web-components": "0.0.1-alpha.1",
|
|
172
|
+
"@agimon-ai/doompi-web-contracts": "0.0.1-alpha.3"
|
|
148
173
|
},
|
|
149
174
|
"devDependencies": {
|
|
150
|
-
"@earendil-works/pi-coding-agent": "0.84.
|
|
151
|
-
"@earendil-works/pi-tui": "0.84.
|
|
152
|
-
"@
|
|
153
|
-
"@
|
|
175
|
+
"@earendil-works/pi-coding-agent": "0.84.3",
|
|
176
|
+
"@earendil-works/pi-tui": "0.84.3",
|
|
177
|
+
"@tanstack/react-store": "0.11.1",
|
|
178
|
+
"@tanstack/store": "0.11.1",
|
|
179
|
+
"@types/node": "26.2.0",
|
|
180
|
+
"@types/react": "19.2.7",
|
|
181
|
+
"@vitest/coverage-v8": "4.1.11",
|
|
182
|
+
"react": "19.2.8",
|
|
154
183
|
"tsdown": "0.22.14",
|
|
155
|
-
"typescript": "
|
|
156
|
-
"vitest": "4.1.
|
|
184
|
+
"typescript": "7.0.2",
|
|
185
|
+
"vitest": "4.1.11"
|
|
157
186
|
},
|
|
158
187
|
"peerDependencies": {
|
|
159
|
-
"@earendil-works/pi-coding-agent": "0.84.
|
|
160
|
-
"@earendil-works/pi-tui": "0.84.
|
|
188
|
+
"@earendil-works/pi-coding-agent": "0.84.3",
|
|
189
|
+
"@earendil-works/pi-tui": "0.84.3"
|
|
161
190
|
},
|
|
162
191
|
"peerDependenciesMeta": {
|
|
163
192
|
"@earendil-works/pi-coding-agent": {
|
|
@@ -170,6 +199,17 @@
|
|
|
170
199
|
"engines": {
|
|
171
200
|
"node": ">=22.19.0"
|
|
172
201
|
},
|
|
202
|
+
"doompiWeb": {
|
|
203
|
+
"pluginId": "task",
|
|
204
|
+
"channels": [
|
|
205
|
+
"task_graph"
|
|
206
|
+
],
|
|
207
|
+
"client": "./web/index.ts",
|
|
208
|
+
"hub": {
|
|
209
|
+
"entry": "./src/exports/webHub.ts",
|
|
210
|
+
"dist": "./dist/webHub.mjs"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
173
213
|
"pi": {
|
|
174
214
|
"extensions": [
|
|
175
215
|
"./dist/extensions/pi.mjs"
|
|
@@ -178,7 +218,7 @@
|
|
|
178
218
|
"scripts": {
|
|
179
219
|
"build": "tsdown",
|
|
180
220
|
"test": "vitest --run",
|
|
181
|
-
"typecheck": "tsc --noEmit",
|
|
221
|
+
"typecheck": "tsc --noEmit && tsc --noEmit -p web/tsconfig.json",
|
|
182
222
|
"lint": "oxlint . && oxfmt . --check",
|
|
183
223
|
"fixcode": "oxlint . --fix && oxfmt ."
|
|
184
224
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Browser-safe task view published by the cockpit hub channel. */
|
|
2
|
+
export const TASKS_CHANNEL_TYPE = 'task_graph';
|
|
3
|
+
|
|
4
|
+
export type WebTaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'deleted';
|
|
5
|
+
|
|
6
|
+
export interface WebTask {
|
|
7
|
+
id: number;
|
|
8
|
+
subject: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
activeForm?: string;
|
|
11
|
+
status: WebTaskStatus;
|
|
12
|
+
blockedBy: number[];
|
|
13
|
+
owner?: string;
|
|
14
|
+
updatedAt?: string;
|
|
15
|
+
delegation?: {
|
|
16
|
+
agent?: string;
|
|
17
|
+
state?: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface WebTasksPayload {
|
|
22
|
+
tasks: WebTask[];
|
|
23
|
+
rev: number;
|
|
24
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MessageItem,
|
|
3
|
+
MessageItemBody,
|
|
4
|
+
MessageItemHeader,
|
|
5
|
+
MessageItemStatus,
|
|
6
|
+
type StatusTone,
|
|
7
|
+
toolTone,
|
|
8
|
+
} from '@agimon-ai/doompi-web-components';
|
|
9
|
+
import type { ToolMessageRenderProps } from '@agimon-ai/doompi-web-contracts';
|
|
10
|
+
import {
|
|
11
|
+
STATUS_LABEL,
|
|
12
|
+
type TaskResultTone,
|
|
13
|
+
type TaskRow,
|
|
14
|
+
type TaskStatus,
|
|
15
|
+
taskCallView,
|
|
16
|
+
taskResultView,
|
|
17
|
+
} from './taskToolFormat.ts';
|
|
18
|
+
|
|
19
|
+
const STATUS_TONE: Record<TaskStatus, string> = {
|
|
20
|
+
pending: 'text-doom-dim',
|
|
21
|
+
in_progress: 'text-doom-yellow',
|
|
22
|
+
completed: 'text-doom-green',
|
|
23
|
+
failed: 'text-doom-red',
|
|
24
|
+
deleted: 'text-doom-faint',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const RESULT_TONE: Record<TaskResultTone, StatusTone> = {
|
|
28
|
+
running: 'running',
|
|
29
|
+
ok: 'ok',
|
|
30
|
+
error: 'error',
|
|
31
|
+
warning: 'running',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** One task row: status glyph, id, subject and chips on the left, the status label flushed right. */
|
|
35
|
+
function TaskRowLine({ row }: { row: TaskRow }) {
|
|
36
|
+
return (
|
|
37
|
+
<li data-testid="tool-result-task-row" data-task-id={row.id} className="flex items-baseline gap-2">
|
|
38
|
+
<span className={`shrink-0 ${STATUS_TONE[row.status]}`}>{row.glyph}</span>
|
|
39
|
+
<span className="shrink-0 text-doom-faint">#{row.id}</span>
|
|
40
|
+
<span
|
|
41
|
+
className={`min-w-0 flex-1 truncate ${row.closed ? 'text-doom-faint line-through' : row.status === 'in_progress' ? 'text-doom-blue' : 'text-doom-text'}`}
|
|
42
|
+
>
|
|
43
|
+
{row.subject}
|
|
44
|
+
{row.agent ? <span className="text-doom-faint"> [{row.agent}]</span> : null}
|
|
45
|
+
{row.activeForm ? <span className="text-doom-faint"> ({row.activeForm})</span> : null}
|
|
46
|
+
{row.blockedBy.length > 0 ? (
|
|
47
|
+
<span className="text-doom-faint"> ⛓ {row.blockedBy.map((id) => `#${id}`).join(',')}</span>
|
|
48
|
+
) : null}
|
|
49
|
+
</span>
|
|
50
|
+
<span className={`shrink-0 ${STATUS_TONE[row.status]}`}>{STATUS_LABEL[row.status]}</span>
|
|
51
|
+
</li>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The task tool's timeline item: `glyph action subject` with the assignee or
|
|
57
|
+
* list filter in the header, as renderTaskCall shows it; the rows the action
|
|
58
|
+
* touched, then the batch or list summary, in the body, as renderTaskResult
|
|
59
|
+
* lays it out.
|
|
60
|
+
*/
|
|
61
|
+
export function TaskToolMessage({ args, result, output, running, isError }: ToolMessageRenderProps) {
|
|
62
|
+
const call = taskCallView(args);
|
|
63
|
+
const collapsed = taskResultView({ details: result?.details, output, expanded: false, isPartial: running, isError });
|
|
64
|
+
const full = taskResultView({ details: result?.details, output, expanded: true, isPartial: running, isError });
|
|
65
|
+
const hidden = full.rows.length - collapsed.rows.length + (full.errorLines.length - collapsed.errorLines.length);
|
|
66
|
+
return (
|
|
67
|
+
<MessageItem tone={toolTone({ running, isError })} expandable={hidden > 0}>
|
|
68
|
+
{({ expanded }) => {
|
|
69
|
+
const view = expanded ? full : collapsed;
|
|
70
|
+
const empty = view.rows.length === 0 && view.errorLines.length === 0 && view.status === null;
|
|
71
|
+
return (
|
|
72
|
+
<>
|
|
73
|
+
<MessageItemHeader title="task">
|
|
74
|
+
<span data-testid="tool-call-task" className="flex min-w-0 flex-1 items-center gap-1.5">
|
|
75
|
+
<span className="shrink-0 text-doom-text">
|
|
76
|
+
{call.glyph} {call.action}
|
|
77
|
+
</span>
|
|
78
|
+
{call.subject ? (
|
|
79
|
+
<span
|
|
80
|
+
className={`min-w-0 truncate ${call.subjectTone === 'accent' ? 'text-doom-blue' : 'text-doom-dim'}`}
|
|
81
|
+
>
|
|
82
|
+
{call.subject}
|
|
83
|
+
</span>
|
|
84
|
+
) : null}
|
|
85
|
+
{call.detail ? <span className="shrink-0 text-doom-faint">{call.detail}</span> : null}
|
|
86
|
+
</span>
|
|
87
|
+
</MessageItemHeader>
|
|
88
|
+
{empty ? null : (
|
|
89
|
+
<MessageItemBody data-testid="tool-result-task" className="flex flex-col gap-1">
|
|
90
|
+
{view.rows.length > 0 ? (
|
|
91
|
+
<ul className="flex flex-col gap-0.5">
|
|
92
|
+
{view.rows.map((row) => (
|
|
93
|
+
<TaskRowLine key={row.id} row={row} />
|
|
94
|
+
))}
|
|
95
|
+
</ul>
|
|
96
|
+
) : null}
|
|
97
|
+
{view.errorLines.length > 0 ? (
|
|
98
|
+
<pre className="whitespace-pre-wrap break-words font-mono text-doom-dim">
|
|
99
|
+
{view.errorLines.join('\n')}
|
|
100
|
+
</pre>
|
|
101
|
+
) : null}
|
|
102
|
+
{!expanded && hidden > 0 ? <MessageItemStatus expands>{hidden} more</MessageItemStatus> : null}
|
|
103
|
+
{view.status ? (
|
|
104
|
+
<MessageItemStatus
|
|
105
|
+
data-testid="tool-result-task-status"
|
|
106
|
+
tone={RESULT_TONE[view.status.tone]}
|
|
107
|
+
glyph={view.status.glyph}
|
|
108
|
+
>
|
|
109
|
+
{view.status.text}
|
|
110
|
+
</MessageItemStatus>
|
|
111
|
+
) : null}
|
|
112
|
+
</MessageItemBody>
|
|
113
|
+
)}
|
|
114
|
+
</>
|
|
115
|
+
);
|
|
116
|
+
}}
|
|
117
|
+
</MessageItem>
|
|
118
|
+
);
|
|
119
|
+
}
|