@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.
- package/LICENSE +149 -21
- package/README.md +20 -10
- package/dist/apiContracts.cjs +1 -0
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts +18 -18
- package/dist/apiContracts.mjs +1 -0
- package/dist/apiContracts.mjs.map +1 -1
- package/dist/{config-CdX-Bv8q.cjs → config-BC-bztyx.cjs} +8 -8
- package/dist/config-BC-bztyx.cjs.map +1 -0
- package/dist/{config-CFSs3iku.mjs → config-BTadoGeF.mjs} +8 -8
- package/dist/config-BTadoGeF.mjs.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +1 -1
- package/dist/{delegation-CdMqOZB4.mjs → delegation-CLcleXHi.mjs} +13 -12
- package/dist/delegation-CLcleXHi.mjs.map +1 -0
- package/dist/{delegation-DsnKjMbJ.cjs → delegation-DRp6iZid.cjs} +12 -11
- package/dist/delegation-DRp6iZid.cjs.map +1 -0
- package/dist/delegationManager.cjs +1 -1
- package/dist/delegationManager.d.mts +1 -1
- package/dist/delegationManager.mjs +1 -1
- package/dist/extensions/mcp-ui.mjs.map +1 -1
- package/dist/extensions/mcp.cjs +52 -50
- package/dist/extensions/mcp.cjs.map +1 -1
- package/dist/extensions/mcp.d.mts +1 -1
- package/dist/extensions/mcp.mjs +52 -50
- package/dist/extensions/mcp.mjs.map +1 -1
- package/dist/extensions/native.mjs +309 -207
- package/dist/extensions/native.mjs.map +1 -1
- package/dist/extensions/server.cjs +363 -134
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.mts +2 -2
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +366 -137
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/extensions/web.mjs +263 -215
- package/dist/extensions/web.mjs.map +1 -1
- package/dist/{index-B-3sCF2S.d.mts → index-BsZ8DxpJ.d.mts} +7 -7
- package/dist/{index-B-3sCF2S.d.mts.map → index-BsZ8DxpJ.d.mts.map} +1 -1
- package/dist/{index-XY9VPmfm.d.mts → index-CA4Opp4r.d.mts} +2 -2
- package/dist/{index-XY9VPmfm.d.mts.map → index-CA4Opp4r.d.mts.map} +1 -1
- package/dist/{index-DlmXKyhQ.d.mts → index-CdJx5tdI.d.mts} +2 -2
- package/dist/{index-DlmXKyhQ.d.mts.map → index-CdJx5tdI.d.mts.map} +1 -1
- package/dist/{index-B1JPJdpZ.d.mts → index-DrE00rrP.d.mts} +3 -3
- package/dist/{index-B1JPJdpZ.d.mts.map → index-DrE00rrP.d.mts.map} +1 -1
- package/dist/{index-teIf67qQ.d.mts → index-Dyan0ai0.d.mts} +9 -9
- package/dist/{index-teIf67qQ.d.mts.map → index-Dyan0ai0.d.mts.map} +1 -1
- package/dist/{index-Dvb8X_qB.d.mts → index-S77ZvGc-.d.mts} +3 -3
- package/dist/index-S77ZvGc-.d.mts.map +1 -0
- package/dist/{index-CUWCvh-E.d.mts → index-nx0ueNkm.d.mts} +2 -2
- package/dist/{index-CUWCvh-E.d.mts.map → index-nx0ueNkm.d.mts.map} +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.d.mts +10 -10
- package/dist/index.mjs +4 -4
- package/dist/{logSinkTelemetry-BMBsC54p.mjs → logSinkTelemetry-3GMazFYa.mjs} +5 -5
- package/dist/logSinkTelemetry-3GMazFYa.mjs.map +1 -0
- package/dist/{logSinkTelemetry-B23qGiP-.cjs → logSinkTelemetry-DhzIQMsV.cjs} +5 -5
- package/dist/logSinkTelemetry-DhzIQMsV.cjs.map +1 -0
- package/dist/logSinkTelemetry.cjs +2 -2
- package/dist/logSinkTelemetry.d.mts +3 -3
- package/dist/logSinkTelemetry.mjs +2 -2
- package/dist/{paths-Cah1vFGv.mjs → paths-DajceJig.mjs} +4 -4
- package/dist/paths-DajceJig.mjs.map +1 -0
- package/dist/{paths-CSya2l9_.cjs → paths-P-XvOUuH.cjs} +4 -4
- package/dist/paths-P-XvOUuH.cjs.map +1 -0
- package/dist/storeInvariants.d.mts +1 -1
- package/dist/storePaths.cjs +1 -1
- package/dist/storePaths.d.mts +1 -1
- package/dist/storePaths.mjs +1 -1
- package/dist/storeReconcile.d.mts +1 -1
- package/dist/storeReducer.d.mts +1 -1
- package/dist/storeTaskGraph.d.mts +1 -1
- package/dist/storeTaskStore.cjs +1 -1
- package/dist/storeTaskStore.d.mts +1 -1
- package/dist/storeTaskStore.mjs +1 -1
- package/dist/storeTypes.d.mts +1 -1
- package/dist/{task-Dhta7JyA.d.mts → task--hlnpS7L.d.mts} +7 -7
- package/dist/{task-Dhta7JyA.d.mts.map → task--hlnpS7L.d.mts.map} +1 -1
- package/dist/task-CXF9VULl.cjs.map +1 -1
- package/dist/{task-DJpTteeJ.d.mts → task-DdTKZNtU.d.mts} +3 -1
- package/dist/task-DdTKZNtU.d.mts.map +1 -0
- package/dist/task-giCbpKzV.mjs.map +1 -1
- package/dist/{taskGraph-D0zFHF2p.d.mts → taskGraph-CB8ffMCz.d.mts} +2 -2
- package/dist/{taskGraph-D0zFHF2p.d.mts.map → taskGraph-CB8ffMCz.d.mts.map} +1 -1
- package/dist/{taskStore-pAJ971Ml.mjs → taskStore-BAi54FKL.mjs} +4 -4
- package/dist/{taskStore-pAJ971Ml.mjs.map → taskStore-BAi54FKL.mjs.map} +1 -1
- package/dist/{taskStore-DjU60rMm.cjs → taskStore-C4vcUOzA.cjs} +4 -4
- package/dist/{taskStore-DjU60rMm.cjs.map → taskStore-C4vcUOzA.cjs.map} +1 -1
- package/dist/telemetry-DYfgUFF8.d.mts +35 -0
- package/dist/telemetry-DYfgUFF8.d.mts.map +1 -0
- package/dist/telemetry-gEGWTaMI.mjs +25 -0
- package/dist/telemetry-gEGWTaMI.mjs.map +1 -0
- package/dist/telemetry-x3JxCA5K.cjs +30 -0
- package/dist/telemetry-x3JxCA5K.cjs.map +1 -0
- package/dist/toolPromptGuidelines.cjs +1 -1
- package/dist/toolPromptGuidelines.cjs.map +1 -1
- package/dist/toolPromptGuidelines.mjs +1 -1
- package/dist/toolPromptGuidelines.mjs.map +1 -1
- package/dist/toolResponseEnvelope.d.mts +1 -1
- package/dist/toolSchema.d.mts +1 -1
- package/llms.txt +11 -0
- package/package.json +20 -19
- package/src/prompts/codemode-how-to-task/SKILL.md +40 -0
- package/src/types/webTasks.ts +1 -0
- package/dist/config-CFSs3iku.mjs.map +0 -1
- package/dist/config-CdX-Bv8q.cjs.map +0 -1
- package/dist/delegation-CdMqOZB4.mjs.map +0 -1
- package/dist/delegation-DsnKjMbJ.cjs.map +0 -1
- package/dist/index-Dvb8X_qB.d.mts.map +0 -1
- package/dist/logSinkTelemetry-B23qGiP-.cjs.map +0 -1
- package/dist/logSinkTelemetry-BMBsC54p.mjs.map +0 -1
- package/dist/paths-CSya2l9_.cjs.map +0 -1
- package/dist/paths-Cah1vFGv.mjs.map +0 -1
- package/dist/task-DJpTteeJ.d.mts.map +0 -1
- package/dist/telemetry-Ca0I3Tqo.cjs +0 -30
- package/dist/telemetry-Ca0I3Tqo.cjs.map +0 -1
- package/dist/telemetry-DyS44zAD.mjs +0 -25
- package/dist/telemetry-DyS44zAD.mjs.map +0 -1
- package/dist/telemetry-FMGRovb4.d.mts +0 -35
- package/dist/telemetry-FMGRovb4.d.mts.map +0 -1
package/dist/extensions/mcp.mjs
CHANGED
|
@@ -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 = "
|
|
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 = "
|
|
112
|
-
const STORE_DIR_NAME = "
|
|
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("
|
|
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: "
|
|
161
|
-
storeReadFailed: "
|
|
162
|
-
storeLockTimeout: "
|
|
163
|
-
storeLockBreakFailed: "
|
|
164
|
-
storeWatchFailed: "
|
|
165
|
-
storeListenerFailed: "
|
|
166
|
-
storeSweepFailed: "
|
|
167
|
-
sessionStartFailed: "
|
|
168
|
-
sessionStartDegraded: "
|
|
169
|
-
toolFailed: "
|
|
170
|
-
delegationRequestFailed: "
|
|
171
|
-
delegationStartFailed: "
|
|
172
|
-
delegationResponseFailed: "
|
|
173
|
-
delegationSettleFailed: "
|
|
174
|
-
delegationTimedOut: "
|
|
175
|
-
delegationOrphaned: "
|
|
176
|
-
delegationAssigned: "
|
|
177
|
-
delegationCompleted: "
|
|
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["
|
|
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
|
-
|
|
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
|