@agimon-ai/po-task 0.0.0-alpha.3 → 0.0.0-alpha.30

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.
Files changed (120) hide show
  1. package/LICENSE +149 -21
  2. package/README.md +20 -10
  3. package/dist/apiContracts.cjs +1 -0
  4. package/dist/apiContracts.cjs.map +1 -1
  5. package/dist/apiContracts.d.mts +18 -18
  6. package/dist/apiContracts.mjs +1 -0
  7. package/dist/apiContracts.mjs.map +1 -1
  8. package/dist/{config-CdX-Bv8q.cjs → config-BC-bztyx.cjs} +8 -8
  9. package/dist/config-BC-bztyx.cjs.map +1 -0
  10. package/dist/{config-CFSs3iku.mjs → config-BTadoGeF.mjs} +8 -8
  11. package/dist/config-BTadoGeF.mjs.map +1 -0
  12. package/dist/config.cjs +1 -1
  13. package/dist/config.d.mts +1 -1
  14. package/dist/config.mjs +1 -1
  15. package/dist/{delegation-CdMqOZB4.mjs → delegation-CLcleXHi.mjs} +13 -12
  16. package/dist/delegation-CLcleXHi.mjs.map +1 -0
  17. package/dist/{delegation-DsnKjMbJ.cjs → delegation-DRp6iZid.cjs} +12 -11
  18. package/dist/delegation-DRp6iZid.cjs.map +1 -0
  19. package/dist/delegationManager.cjs +1 -1
  20. package/dist/delegationManager.d.mts +1 -1
  21. package/dist/delegationManager.mjs +1 -1
  22. package/dist/extensions/mcp-ui.mjs.map +1 -1
  23. package/dist/extensions/mcp.cjs +52 -50
  24. package/dist/extensions/mcp.cjs.map +1 -1
  25. package/dist/extensions/mcp.d.mts +1 -1
  26. package/dist/extensions/mcp.mjs +52 -50
  27. package/dist/extensions/mcp.mjs.map +1 -1
  28. package/dist/extensions/native.mjs +309 -207
  29. package/dist/extensions/native.mjs.map +1 -1
  30. package/dist/extensions/server.cjs +363 -134
  31. package/dist/extensions/server.cjs.map +1 -1
  32. package/dist/extensions/server.d.mts +2 -2
  33. package/dist/extensions/server.d.mts.map +1 -1
  34. package/dist/extensions/server.mjs +366 -137
  35. package/dist/extensions/server.mjs.map +1 -1
  36. package/dist/extensions/web.mjs +263 -215
  37. package/dist/extensions/web.mjs.map +1 -1
  38. package/dist/{index-B-3sCF2S.d.mts → index-BsZ8DxpJ.d.mts} +7 -7
  39. package/dist/{index-B-3sCF2S.d.mts.map → index-BsZ8DxpJ.d.mts.map} +1 -1
  40. package/dist/{index-XY9VPmfm.d.mts → index-CA4Opp4r.d.mts} +2 -2
  41. package/dist/{index-XY9VPmfm.d.mts.map → index-CA4Opp4r.d.mts.map} +1 -1
  42. package/dist/{index-DlmXKyhQ.d.mts → index-CdJx5tdI.d.mts} +2 -2
  43. package/dist/{index-DlmXKyhQ.d.mts.map → index-CdJx5tdI.d.mts.map} +1 -1
  44. package/dist/{index-B1JPJdpZ.d.mts → index-DrE00rrP.d.mts} +3 -3
  45. package/dist/{index-B1JPJdpZ.d.mts.map → index-DrE00rrP.d.mts.map} +1 -1
  46. package/dist/{index-teIf67qQ.d.mts → index-Dyan0ai0.d.mts} +9 -9
  47. package/dist/{index-teIf67qQ.d.mts.map → index-Dyan0ai0.d.mts.map} +1 -1
  48. package/dist/{index-Dvb8X_qB.d.mts → index-S77ZvGc-.d.mts} +3 -3
  49. package/dist/index-S77ZvGc-.d.mts.map +1 -0
  50. package/dist/{index-CUWCvh-E.d.mts → index-nx0ueNkm.d.mts} +2 -2
  51. package/dist/{index-CUWCvh-E.d.mts.map → index-nx0ueNkm.d.mts.map} +1 -1
  52. package/dist/index.cjs +4 -4
  53. package/dist/index.d.mts +10 -10
  54. package/dist/index.mjs +4 -4
  55. package/dist/{logSinkTelemetry-BMBsC54p.mjs → logSinkTelemetry-3GMazFYa.mjs} +5 -5
  56. package/dist/logSinkTelemetry-3GMazFYa.mjs.map +1 -0
  57. package/dist/{logSinkTelemetry-B23qGiP-.cjs → logSinkTelemetry-DhzIQMsV.cjs} +5 -5
  58. package/dist/logSinkTelemetry-DhzIQMsV.cjs.map +1 -0
  59. package/dist/logSinkTelemetry.cjs +2 -2
  60. package/dist/logSinkTelemetry.d.mts +3 -3
  61. package/dist/logSinkTelemetry.mjs +2 -2
  62. package/dist/{paths-Cah1vFGv.mjs → paths-DajceJig.mjs} +4 -4
  63. package/dist/paths-DajceJig.mjs.map +1 -0
  64. package/dist/{paths-CSya2l9_.cjs → paths-P-XvOUuH.cjs} +4 -4
  65. package/dist/paths-P-XvOUuH.cjs.map +1 -0
  66. package/dist/storeInvariants.d.mts +1 -1
  67. package/dist/storePaths.cjs +1 -1
  68. package/dist/storePaths.d.mts +1 -1
  69. package/dist/storePaths.mjs +1 -1
  70. package/dist/storeReconcile.d.mts +1 -1
  71. package/dist/storeReducer.d.mts +1 -1
  72. package/dist/storeTaskGraph.d.mts +1 -1
  73. package/dist/storeTaskStore.cjs +1 -1
  74. package/dist/storeTaskStore.d.mts +1 -1
  75. package/dist/storeTaskStore.mjs +1 -1
  76. package/dist/storeTypes.d.mts +1 -1
  77. package/dist/{task-Dhta7JyA.d.mts → task--hlnpS7L.d.mts} +7 -7
  78. package/dist/{task-Dhta7JyA.d.mts.map → task--hlnpS7L.d.mts.map} +1 -1
  79. package/dist/task-CXF9VULl.cjs.map +1 -1
  80. package/dist/{task-DJpTteeJ.d.mts → task-DdTKZNtU.d.mts} +3 -1
  81. package/dist/task-DdTKZNtU.d.mts.map +1 -0
  82. package/dist/task-giCbpKzV.mjs.map +1 -1
  83. package/dist/{taskGraph-D0zFHF2p.d.mts → taskGraph-CB8ffMCz.d.mts} +2 -2
  84. package/dist/{taskGraph-D0zFHF2p.d.mts.map → taskGraph-CB8ffMCz.d.mts.map} +1 -1
  85. package/dist/{taskStore-pAJ971Ml.mjs → taskStore-BAi54FKL.mjs} +4 -4
  86. package/dist/{taskStore-pAJ971Ml.mjs.map → taskStore-BAi54FKL.mjs.map} +1 -1
  87. package/dist/{taskStore-DjU60rMm.cjs → taskStore-C4vcUOzA.cjs} +4 -4
  88. package/dist/{taskStore-DjU60rMm.cjs.map → taskStore-C4vcUOzA.cjs.map} +1 -1
  89. package/dist/telemetry-DYfgUFF8.d.mts +35 -0
  90. package/dist/telemetry-DYfgUFF8.d.mts.map +1 -0
  91. package/dist/telemetry-gEGWTaMI.mjs +25 -0
  92. package/dist/telemetry-gEGWTaMI.mjs.map +1 -0
  93. package/dist/telemetry-x3JxCA5K.cjs +30 -0
  94. package/dist/telemetry-x3JxCA5K.cjs.map +1 -0
  95. package/dist/toolPromptGuidelines.cjs +1 -1
  96. package/dist/toolPromptGuidelines.cjs.map +1 -1
  97. package/dist/toolPromptGuidelines.mjs +1 -1
  98. package/dist/toolPromptGuidelines.mjs.map +1 -1
  99. package/dist/toolResponseEnvelope.d.mts +1 -1
  100. package/dist/toolSchema.d.mts +1 -1
  101. package/llms.txt +11 -0
  102. package/package.json +20 -19
  103. package/src/prompts/codemode-how-to-task/SKILL.md +40 -0
  104. package/src/types/webTasks.ts +1 -0
  105. package/dist/config-CFSs3iku.mjs.map +0 -1
  106. package/dist/config-CdX-Bv8q.cjs.map +0 -1
  107. package/dist/delegation-CdMqOZB4.mjs.map +0 -1
  108. package/dist/delegation-DsnKjMbJ.cjs.map +0 -1
  109. package/dist/index-Dvb8X_qB.d.mts.map +0 -1
  110. package/dist/logSinkTelemetry-B23qGiP-.cjs.map +0 -1
  111. package/dist/logSinkTelemetry-BMBsC54p.mjs.map +0 -1
  112. package/dist/paths-CSya2l9_.cjs.map +0 -1
  113. package/dist/paths-Cah1vFGv.mjs.map +0 -1
  114. package/dist/task-DJpTteeJ.d.mts.map +0 -1
  115. package/dist/telemetry-Ca0I3Tqo.cjs +0 -30
  116. package/dist/telemetry-Ca0I3Tqo.cjs.map +0 -1
  117. package/dist/telemetry-DyS44zAD.mjs +0 -25
  118. package/dist/telemetry-DyS44zAD.mjs.map +0 -1
  119. package/dist/telemetry-FMGRovb4.d.mts +0 -35
  120. package/dist/telemetry-FMGRovb4.d.mts.map +0 -1
@@ -100,7 +100,7 @@ const RemoteTaskParamsSchema = Type.Object({
100
100
  });
101
101
  //#endregion
102
102
  //#region src/services/config/index.ts
103
- const MAX_TASKS_ENV = "DOOM_TASK_MAX_TASKS";
103
+ const MAX_TASKS_ENV = "PO_TASK_MAX_TASKS";
104
104
  /** Maximum number of non-deleted tasks retained on one board. */
105
105
  function getMaxTasks(env = process.env) {
106
106
  const raw = Number(env[MAX_TASKS_ENV]);
@@ -108,8 +108,8 @@ function getMaxTasks(env = process.env) {
108
108
  }
109
109
  //#endregion
110
110
  //#region src/services/paths/index.ts
111
- const STORE_PATH_ENV = "DOOM_TASK_STORE";
112
- const STORE_DIR_NAME = "doom-task";
111
+ const STORE_PATH_ENV = "PO_TASK_STORE";
112
+ const STORE_DIR_NAME = "po-task";
113
113
  const STORE_FILE_NAME = "tasks.json";
114
114
  /** Resolve the tree root without relying on extension startup order. */
115
115
  function resolveSessionKey(rootSessionId, env = process.env) {
@@ -123,7 +123,7 @@ function resolveStorePath(_cwd = process.cwd(), env = process.env, sessionKey =
123
123
  const override = env[STORE_PATH_ENV]?.trim();
124
124
  if (override) return path.resolve(override);
125
125
  const trimmedSessionKey = sessionKey.trim();
126
- if (!trimmedSessionKey) throw new Error("doom-task session id cannot be blank");
126
+ if (!trimmedSessionKey) throw new Error("po-task session id cannot be blank");
127
127
  return path.join(piAgentDirectory(env), STORE_DIR_NAME, trimmedSessionKey, STORE_FILE_NAME);
128
128
  }
129
129
  function lockPathFor(storePath) {
@@ -157,24 +157,24 @@ function isDelegationActive(task) {
157
157
  //#endregion
158
158
  //#region src/types/telemetry.ts
159
159
  const TASK_EVENT = {
160
- notificationFailed: "doom_task.notification_failed",
161
- storeReadFailed: "doom_task.store_read_failed",
162
- storeLockTimeout: "doom_task.store_lock_timeout",
163
- storeLockBreakFailed: "doom_task.store_lock_break_failed",
164
- storeWatchFailed: "doom_task.store_watch_failed",
165
- storeListenerFailed: "doom_task.store_listener_failed",
166
- storeSweepFailed: "doom_task.store_sweep_failed",
167
- sessionStartFailed: "doom_task.session_start_failed",
168
- sessionStartDegraded: "doom_task.session_start_degraded",
169
- toolFailed: "doom_task.tool_failed",
170
- delegationRequestFailed: "doom_task.delegation_request_failed",
171
- delegationStartFailed: "doom_task.delegation_start_failed",
172
- delegationResponseFailed: "doom_task.delegation_response_failed",
173
- delegationSettleFailed: "doom_task.delegation_settle_failed",
174
- delegationTimedOut: "doom_task.delegation_timed_out",
175
- delegationOrphaned: "doom_task.delegation_orphaned",
176
- delegationAssigned: "doom_task.delegation_assigned",
177
- delegationCompleted: "doom_task.delegation_completed"
160
+ notificationFailed: "po_task.notification_failed",
161
+ storeReadFailed: "po_task.store_read_failed",
162
+ storeLockTimeout: "po_task.store_lock_timeout",
163
+ storeLockBreakFailed: "po_task.store_lock_break_failed",
164
+ storeWatchFailed: "po_task.store_watch_failed",
165
+ storeListenerFailed: "po_task.store_listener_failed",
166
+ storeSweepFailed: "po_task.store_sweep_failed",
167
+ sessionStartFailed: "po_task.session_start_failed",
168
+ sessionStartDegraded: "po_task.session_start_degraded",
169
+ toolFailed: "po_task.tool_failed",
170
+ delegationRequestFailed: "po_task.delegation_request_failed",
171
+ delegationStartFailed: "po_task.delegation_start_failed",
172
+ delegationResponseFailed: "po_task.delegation_response_failed",
173
+ delegationSettleFailed: "po_task.delegation_settle_failed",
174
+ delegationTimedOut: "po_task.delegation_timed_out",
175
+ delegationOrphaned: "po_task.delegation_orphaned",
176
+ delegationAssigned: "po_task.delegation_assigned",
177
+ delegationCompleted: "po_task.delegation_completed"
178
178
  };
179
179
  //#endregion
180
180
  //#region src/services/invariants/index.ts
@@ -309,7 +309,7 @@ var TaskStore = class {
309
309
  }
310
310
  /** Bind a default store to the current session tree before reading it. */
311
311
  configureSession(sessionKey) {
312
- if (this.env["DOOM_TASK_STORE"]?.trim()) return;
312
+ if (this.env["PO_TASK_STORE"]?.trim()) return;
313
313
  this.storePath = resolveStorePath(this.cwd, this.env, sessionKey);
314
314
  this.cached = emptyDocument();
315
315
  }
@@ -1031,6 +1031,34 @@ async function assignmentBatch(manager, assignments, signal) {
1031
1031
  }
1032
1032
  return result;
1033
1033
  }
1034
+ /** One task action against the session store, shared by the `task` tool and the `tasks` code-mode namespace. */
1035
+ async function runTaskAction(store, manager, maxTasks, rawParams, signal, onUpdate) {
1036
+ if (!Check(TaskParamsSchema, rawParams)) return failure("Invalid task parameters.");
1037
+ const params = rawParams;
1038
+ try {
1039
+ if ((params.action === "assign" || params.action === "cancel") && !manager) throw new Error("Delegation is not available on this connection.");
1040
+ if (params.action === "assign") {
1041
+ if (!params.assignments?.length) throw new Error("assign requires a non-empty assignments[] array");
1042
+ onUpdate?.(output(`Delegating ${params.assignments.length} task${params.assignments.length === 1 ? "" : "s"}...`));
1043
+ const items = await assignmentBatch(manager, params.assignments, signal);
1044
+ const assigned = items.filter((item) => item.ok).map((item) => item.id);
1045
+ const text = formatAssignmentResults(items);
1046
+ if (assigned.length === 0) throw new Error(text);
1047
+ return buildAssignmentResult(params, store.snapshot, text, {
1048
+ assigned,
1049
+ failed: items.length - assigned.length
1050
+ });
1051
+ }
1052
+ if (params.action === "cancel") {
1053
+ const outcome = await manager.cancel(params.id ?? NaN);
1054
+ if (!outcome.ok) throw new Error(outcome.message);
1055
+ return buildTextResult("cancel", params, store.snapshot, outcome.message);
1056
+ }
1057
+ return reducerAction(store, params.action, params, maxTasks);
1058
+ } catch (error) {
1059
+ return failure(error);
1060
+ }
1061
+ }
1034
1062
  function createHeadlessTaskTool(store, manager, maxTasks) {
1035
1063
  return {
1036
1064
  name: "task",
@@ -1039,33 +1067,7 @@ function createHeadlessTaskTool(store, manager, maxTasks) {
1039
1067
  parameters: TaskParamsSchema,
1040
1068
  promptSnippet: "Track complex work persistently and delegate ready tasks",
1041
1069
  executionMode: "serial",
1042
- async execute(_toolCallId, rawParams, signal, onUpdate) {
1043
- if (!Check(TaskParamsSchema, rawParams)) return failure("Invalid task parameters.");
1044
- const params = rawParams;
1045
- try {
1046
- if ((params.action === "assign" || params.action === "cancel") && !manager) throw new Error("Delegation is not available on this connection.");
1047
- if (params.action === "assign") {
1048
- if (!params.assignments?.length) throw new Error("assign requires a non-empty assignments[] array");
1049
- onUpdate?.(output(`Delegating ${params.assignments.length} task${params.assignments.length === 1 ? "" : "s"}...`));
1050
- const items = await assignmentBatch(manager, params.assignments, signal);
1051
- const assigned = items.filter((item) => item.ok).map((item) => item.id);
1052
- const text = formatAssignmentResults(items);
1053
- if (assigned.length === 0) throw new Error(text);
1054
- return buildAssignmentResult(params, store.snapshot, text, {
1055
- assigned,
1056
- failed: items.length - assigned.length
1057
- });
1058
- }
1059
- if (params.action === "cancel") {
1060
- const outcome = await manager.cancel(params.id ?? NaN);
1061
- if (!outcome.ok) throw new Error(outcome.message);
1062
- return buildTextResult("cancel", params, store.snapshot, outcome.message);
1063
- }
1064
- return reducerAction(store, params.action, params, maxTasks);
1065
- } catch (error) {
1066
- return failure(error);
1067
- }
1068
- }
1070
+ execute: (_toolCallId, rawParams, signal, onUpdate) => runTaskAction(store, manager, maxTasks, rawParams, signal, onUpdate)
1069
1071
  };
1070
1072
  }
1071
1073
  //#endregion