@pentoshi/clai 4.11.20 → 4.11.22
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/dist/agent/evidence/task-selection.d.ts +0 -15
- package/dist/agent/evidence/task-selection.js +1 -33
- package/dist/agent/evidence/task-selection.js.map +1 -1
- package/dist/agent/parser/parse-entry.js +30 -2
- package/dist/agent/parser/parse-entry.js.map +1 -1
- package/dist/agent/parser/vendor-protocols.d.ts +12 -0
- package/dist/agent/parser/vendor-protocols.js +105 -0
- package/dist/agent/parser/vendor-protocols.js.map +1 -1
- package/dist/agent/plan/actions/plan-clear.js.map +1 -1
- package/dist/agent/plan/actions/plan-create.js.map +1 -1
- package/dist/agent/plan/actions/task-add.js.map +1 -1
- package/dist/agent/plan/actions/task-move.js.map +1 -1
- package/dist/agent/plan/handle-plan-tool.js +5 -154
- package/dist/agent/plan/handle-plan-tool.js.map +1 -1
- package/dist/agent/runner.js +1 -13
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/session-policy.d.ts +0 -6
- package/dist/agent/session-policy.js +0 -2
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/subagents/read-only-tools.d.ts +2 -0
- package/dist/agent/subagents/read-only-tools.js +61 -457
- package/dist/agent/subagents/read-only-tools.js.map +1 -1
- package/dist/agent/subagents/tools.js +1 -1
- package/dist/agent/subagents/tools.js.map +1 -1
- package/dist/agent/subagents/worker.js +2 -2
- package/dist/agent/task-evidence.d.ts +2 -2
- package/dist/agent/task-evidence.js +1 -1
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-call-parser.js +6 -0
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-history.js +30 -16
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/turn/compaction-admission.d.ts +5 -0
- package/dist/agent/turn/compaction-admission.js +24 -0
- package/dist/agent/turn/compaction-admission.js.map +1 -1
- package/dist/agent/turn/compaction-coordinator.d.ts +1 -0
- package/dist/agent/turn/compaction-coordinator.js +2 -0
- package/dist/agent/turn/compaction-coordinator.js.map +1 -1
- package/dist/agent/turn/loop/run-rounds.js +19 -25
- package/dist/agent/turn/loop/run-rounds.js.map +1 -1
- package/dist/agent/turn/loop/state.d.ts +1 -2
- package/dist/agent/turn/loop/state.js +1 -2
- package/dist/agent/turn/loop/state.js.map +1 -1
- package/dist/agent/turn/setup/compaction-services.d.ts +1 -0
- package/dist/agent/turn/setup/compaction-services.js +1 -0
- package/dist/agent/turn/setup/compaction-services.js.map +1 -1
- package/dist/agent/turn/setup/task-gate-setup.d.ts +1 -11
- package/dist/agent/turn/setup/task-gate-setup.js +4 -19
- package/dist/agent/turn/setup/task-gate-setup.js.map +1 -1
- package/dist/agent/turn/tool-execution/deps.d.ts +1 -5
- package/dist/agent/turn/tool-execution/guards.d.ts +0 -4
- package/dist/agent/turn/tool-execution/guards.js +3 -12
- package/dist/agent/turn/tool-execution/guards.js.map +1 -1
- package/dist/agent/turn/tool-execution/meta-tools.d.ts +0 -2
- package/dist/agent/turn/tool-execution/meta-tools.js +0 -17
- package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -1
- package/dist/agent/turn/tool-execution/single-tool.js +0 -14
- package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
- package/dist/app/commands/catalog.js +32 -1
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/classic/panels/keys-panel.js +8 -1
- package/dist/classic/panels/keys-panel.js.map +1 -1
- package/dist/commands/providers.d.ts +17 -0
- package/dist/commands/providers.js +317 -28
- package/dist/commands/providers.js.map +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/adapters/openai-tools.js +19 -10
- package/dist/llm/adapters/openai-tools.js.map +1 -1
- package/dist/llm/agentrouter.js +1 -1
- package/dist/llm/anthropic.d.ts +4 -2
- package/dist/llm/anthropic.js +186 -178
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/artifacts/replay-selection.js +11 -5
- package/dist/llm/artifacts/replay-selection.js.map +1 -1
- package/dist/llm/bynara.js +1 -1
- package/dist/llm/capability/state.d.ts +1 -1
- package/dist/llm/capability/tool-dialect.js +5 -1
- package/dist/llm/capability/tool-dialect.js.map +1 -1
- package/dist/llm/capability/vision-patterns.js +3 -0
- package/dist/llm/capability/vision-patterns.js.map +1 -1
- package/dist/llm/catalog-facts.js +50 -2
- package/dist/llm/catalog-facts.js.map +1 -1
- package/dist/llm/catalog-prefetch.js +1 -1
- package/dist/llm/cline-auth.d.ts +34 -0
- package/dist/llm/cline-auth.js +248 -0
- package/dist/llm/cline-auth.js.map +1 -0
- package/dist/llm/cline.d.ts +2 -0
- package/dist/llm/cline.js +147 -0
- package/dist/llm/cline.js.map +1 -0
- package/dist/llm/codex-auth.d.ts +53 -0
- package/dist/llm/codex-auth.js +512 -0
- package/dist/llm/codex-auth.js.map +1 -0
- package/dist/llm/codex.d.ts +4 -0
- package/dist/llm/codex.js +239 -0
- package/dist/llm/codex.js.map +1 -0
- package/dist/llm/copilot-auth.d.ts +38 -0
- package/dist/llm/copilot-auth.js +258 -0
- package/dist/llm/copilot-auth.js.map +1 -0
- package/dist/llm/copilot.d.ts +4 -0
- package/dist/llm/copilot.js +226 -0
- package/dist/llm/copilot.js.map +1 -0
- package/dist/llm/custom-providers.js +1 -1
- package/dist/llm/deepseek.js +1 -1
- package/dist/llm/explabs.js +1 -4
- package/dist/llm/explabs.js.map +1 -1
- package/dist/llm/fireworks.js +1 -1
- package/dist/llm/free-default-model.js +9 -4
- package/dist/llm/free-default-model.js.map +1 -1
- package/dist/llm/free.d.ts +1 -1
- package/dist/llm/free.js +109 -25
- package/dist/llm/free.js.map +1 -1
- package/dist/llm/glm.js +1 -1
- package/dist/llm/hetzner.js +1 -1
- package/dist/llm/kimi.js +1 -1
- package/dist/llm/lightning.js +1 -1
- package/dist/llm/merge-gateway.js +1 -1
- package/dist/llm/meta.js +1 -1
- package/dist/llm/minimax.js +1 -1
- package/dist/llm/model-families.js +1 -1
- package/dist/llm/model-families.js.map +1 -1
- package/dist/llm/model-layers/model-rules.js +6 -0
- package/dist/llm/model-layers/model-rules.js.map +1 -1
- package/dist/llm/nvidia.js +1 -1
- package/dist/llm/openrouter.js +1 -1
- package/dist/llm/orcarouter.js +1 -1
- package/dist/llm/provider-identity.d.ts +2 -0
- package/dist/llm/provider-identity.js +35 -0
- package/dist/llm/provider-identity.js.map +1 -1
- package/dist/llm/provider-info-text.js +110 -8
- package/dist/llm/provider-info-text.js.map +1 -1
- package/dist/llm/provider-model-layers.js +4 -0
- package/dist/llm/provider-model-layers.js.map +1 -1
- package/dist/llm/provider-profile-layers.js +143 -0
- package/dist/llm/provider-profile-layers.js.map +1 -1
- package/dist/llm/provider-profiles.js +2 -1
- package/dist/llm/provider-profiles.js.map +1 -1
- package/dist/llm/provider.d.ts +6 -4
- package/dist/llm/provider.js +2 -2
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/qwen-cloud.js +1 -1
- package/dist/llm/reasoning-capability.js +14 -0
- package/dist/llm/reasoning-capability.js.map +1 -1
- package/dist/llm/responses/item-events.js +10 -0
- package/dist/llm/responses/item-events.js.map +1 -1
- package/dist/llm/responses-config.d.ts +4 -0
- package/dist/llm/responses-config.js.map +1 -1
- package/dist/llm/responses-parse.js +23 -11
- package/dist/llm/responses-parse.js.map +1 -1
- package/dist/llm/responses-request.js +31 -8
- package/dist/llm/responses-request.js.map +1 -1
- package/dist/llm/responses-stream-events.js +21 -5
- package/dist/llm/responses-stream-events.js.map +1 -1
- package/dist/llm/routing/attempt-complete.js +1 -1
- package/dist/llm/routing/attempt-complete.js.map +1 -1
- package/dist/llm/routing/attempt-request.js +1 -1
- package/dist/llm/routing/attempt-request.js.map +1 -1
- package/dist/llm/routing/attempt-stream.js +2 -2
- package/dist/llm/routing/attempt-stream.js.map +1 -1
- package/dist/llm/routing/error-classification.js +3 -1
- package/dist/llm/routing/error-classification.js.map +1 -1
- package/dist/llm/routing/key-rotation.js +9 -4
- package/dist/llm/routing/key-rotation.js.map +1 -1
- package/dist/llm/routing/provider-selection.d.ts +2 -1
- package/dist/llm/routing/provider-selection.js +18 -4
- package/dist/llm/routing/provider-selection.js.map +1 -1
- package/dist/llm/tokenrouter.js +1 -1
- package/dist/llm/tool-protocol.js +4 -14
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/llm/vercel.js +1 -1
- package/dist/llm/wire/capability-errors.js +6 -3
- package/dist/llm/wire/capability-errors.js.map +1 -1
- package/dist/llm/wire/chat-body.js +13 -16
- package/dist/llm/wire/chat-body.js.map +1 -1
- package/dist/llm/wire/openai-complete.d.ts +1 -0
- package/dist/llm/wire/openai-complete.js +9 -0
- package/dist/llm/wire/openai-complete.js.map +1 -1
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +7 -1
- package/dist/store/config.js +3 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/keys/search-providers.d.ts +2 -0
- package/dist/store/keys/search-providers.js +6 -0
- package/dist/store/keys/search-providers.js.map +1 -1
- package/dist/store/keys.d.ts +6 -1
- package/dist/store/keys.js +46 -17
- package/dist/store/keys.js.map +1 -1
- package/dist/store/plan/mutation.d.ts +0 -1
- package/dist/store/plan/mutation.js +1 -22
- package/dist/store/plan/mutation.js.map +1 -1
- package/dist/store/plan.d.ts +1 -1
- package/dist/store/plan.js +1 -4
- package/dist/store/plan.js.map +1 -1
- package/dist/tools/definitions/subagents.js +2 -2
- package/dist/tools/definitions/subagents.js.map +1 -1
- package/dist/tui-v2/components/modal/keys-modal-pick.d.ts +5 -0
- package/dist/tui-v2/components/modal/keys-modal-pick.js +13 -0
- package/dist/tui-v2/components/modal/keys-modal-pick.js.map +1 -1
- package/dist/tui-v2/components/modal/keys-modal.js +15 -13
- package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/ui-core/commands/key-commands.d.ts +6 -3
- package/dist/ui-core/commands/key-commands.js +506 -15
- package/dist/ui-core/commands/key-commands.js.map +1 -1
- package/dist/ui-core/commands/keys/editors.js +10 -4
- package/dist/ui-core/commands/keys/editors.js.map +1 -1
- package/dist/ui-core/commands/picker-commands.js +86 -32
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/subagent-models-editor.js +12 -4
- package/dist/ui-core/commands/subagent-models-editor.js.map +1 -1
- package/dist/ui-core/controllers/overlay-controller.d.ts +4 -0
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/rendering/format-keys.js +4 -2
- package/dist/ui-core/rendering/format-keys.js.map +1 -1
- package/dist/ui-core/rendering/format-usage.js +3 -1
- package/dist/ui-core/rendering/format-usage.js.map +1 -1
- package/dist/ui-core/rendering/incremental-strip.js +2 -2
- package/dist/ui-core/rendering/incremental-strip.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.js +4 -1
- package/dist/ui-core/rendering/intro-header.js.map +1 -1
- package/dist/ui-core/rendering/strip-tool-surfaces.js +76 -0
- package/dist/ui-core/rendering/strip-tool-surfaces.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
- package/dist/agent/task-sync.d.ts +0 -40
- package/dist/agent/task-sync.js +0 -105
- package/dist/agent/task-sync.js.map +0 -1
- package/dist/agent/turn/task-batch-guard.d.ts +0 -18
- package/dist/agent/turn/task-batch-guard.js +0 -83
- package/dist/agent/turn/task-batch-guard.js.map +0 -1
- package/dist/agent/turn/task-gate.d.ts +0 -13
- package/dist/agent/turn/task-gate.js +0 -34
- package/dist/agent/turn/task-gate.js.map +0 -1
- package/dist/agent/turn/task-update-gate.d.ts +0 -13
- package/dist/agent/turn/task-update-gate.js +0 -40
- package/dist/agent/turn/task-update-gate.js.map +0 -1
- package/dist/store/task-transitions.d.ts +0 -12
- package/dist/store/task-transitions.js +0 -40
- package/dist/store/task-transitions.js.map +0 -1
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { resolvePlanTaskId } from "../plan-tool.js";
|
|
2
|
-
import { batchUpdateSignature, buildMultiOpenRejection, buildMultiUpdateReminder, distinctAdvancingTaskIds, isSimultaneousTaskAdvance, multiOpenToast, multiUpdateToast, openingTaskIds, readTaskUpdateArgs, } from "../task-sync.js";
|
|
3
|
-
const readIntents = (input) => {
|
|
4
|
-
const intents = [];
|
|
5
|
-
for (const call of input.calls) {
|
|
6
|
-
const parsed = readTaskUpdateArgs(call);
|
|
7
|
-
if (!parsed)
|
|
8
|
-
continue;
|
|
9
|
-
const taskId = input.plan
|
|
10
|
-
? (resolvePlanTaskId(input.plan, parsed.taskId) ?? parsed.taskId)
|
|
11
|
-
: parsed.taskId;
|
|
12
|
-
intents.push({ call, taskId, state: parsed.state });
|
|
13
|
-
}
|
|
14
|
-
return intents;
|
|
15
|
-
};
|
|
16
|
-
const titleFor = (plan, taskId) => plan?.tasks.find((task) => task.id === taskId)?.title ?? "";
|
|
17
|
-
const rejectMultiOpen = (input, intents, openIds) => {
|
|
18
|
-
const descriptors = openIds.map((taskId) => ({
|
|
19
|
-
taskId,
|
|
20
|
-
title: titleFor(input.plan, taskId),
|
|
21
|
-
targetState: "in_progress",
|
|
22
|
-
}));
|
|
23
|
-
const remindCalls = new Set();
|
|
24
|
-
for (const intent of intents) {
|
|
25
|
-
if (intent.state === "in_progress")
|
|
26
|
-
remindCalls.add(intent.call);
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
remindCalls,
|
|
30
|
-
reminderNote: buildMultiOpenRejection(descriptors),
|
|
31
|
-
pendingSignature: undefined,
|
|
32
|
-
notices: [{ level: "warn", message: multiOpenToast(openIds.length) }],
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
const holdSimultaneousAdvance = (input, intents) => {
|
|
36
|
-
const descriptors = intents.map((intent) => ({
|
|
37
|
-
taskId: intent.taskId,
|
|
38
|
-
title: titleFor(input.plan, intent.taskId),
|
|
39
|
-
targetState: intent.state,
|
|
40
|
-
}));
|
|
41
|
-
const remindCalls = new Set();
|
|
42
|
-
for (const intent of intents)
|
|
43
|
-
remindCalls.add(intent.call);
|
|
44
|
-
return {
|
|
45
|
-
remindCalls,
|
|
46
|
-
reminderNote: buildMultiUpdateReminder(descriptors),
|
|
47
|
-
pendingSignature: batchUpdateSignature(intents),
|
|
48
|
-
notices: [
|
|
49
|
-
{
|
|
50
|
-
level: "warn",
|
|
51
|
-
message: multiUpdateToast(distinctAdvancingTaskIds(intents).length),
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
export const evaluateTaskBatchGuard = (input) => {
|
|
57
|
-
const intents = readIntents(input);
|
|
58
|
-
const openIds = openingTaskIds(intents);
|
|
59
|
-
if (openIds.length > 1) {
|
|
60
|
-
return rejectMultiOpen(input, intents, openIds);
|
|
61
|
-
}
|
|
62
|
-
if (!isSimultaneousTaskAdvance(intents)) {
|
|
63
|
-
return {
|
|
64
|
-
remindCalls: new Set(),
|
|
65
|
-
reminderNote: "",
|
|
66
|
-
pendingSignature: undefined,
|
|
67
|
-
notices: [],
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
const signature = batchUpdateSignature(intents);
|
|
71
|
-
if (input.pendingSignature === signature) {
|
|
72
|
-
return {
|
|
73
|
-
remindCalls: new Set(),
|
|
74
|
-
reminderNote: "",
|
|
75
|
-
pendingSignature: undefined,
|
|
76
|
-
notices: [
|
|
77
|
-
{ level: "info", message: "confirmed batch task update — applying" },
|
|
78
|
-
],
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
return holdSimultaneousAdvance(input, intents);
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=task-batch-guard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-batch-guard.js","sourceRoot":"","sources":["../../../src/agent/turn/task-batch-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { SessionPlan } from "../../store/plan.js";
|
|
2
|
-
import { canMarkTaskDone, type LooseWorkReceipt, type TaskWorkLedger } from "../task-evidence.js";
|
|
3
|
-
export interface TaskGatePorts {
|
|
4
|
-
readonly getLiveLedger: () => TaskWorkLedger | null;
|
|
5
|
-
readonly setLiveLedger: (ledger: TaskWorkLedger) => void;
|
|
6
|
-
readonly getLooseWork: () => readonly LooseWorkReceipt[];
|
|
7
|
-
readonly featureAppRequired: boolean;
|
|
8
|
-
readonly existingProject: () => boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare const planHasVerifiedRuntime: (plan: SessionPlan) => boolean;
|
|
11
|
-
export declare const planHasVerifiedRemoteWork: (plan: SessionPlan) => boolean;
|
|
12
|
-
export declare const resolveLedgerForTaskGate: (ports: TaskGatePorts, plan: SessionPlan, taskId: string) => TaskWorkLedger | null;
|
|
13
|
-
export declare const evaluateTaskCompletionGate: (ports: TaskGatePorts, plan: SessionPlan, taskId: string) => ReturnType<typeof canMarkTaskDone>;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { absorbLooseWorkIntoLedger, canMarkTaskDone, hasLocalRuntimeProof, hasRemoteWorkProof, ledgerFromTaskEvidence, } from "../task-evidence.js";
|
|
2
|
-
export const planHasVerifiedRuntime = (plan) => plan.tasks.some((task) => hasLocalRuntimeProof(task.evidence));
|
|
3
|
-
export const planHasVerifiedRemoteWork = (plan) => plan.tasks.some((task) => hasRemoteWorkProof(task.evidence));
|
|
4
|
-
const preferLiveLedger = (live, durable, taskId) => live?.taskId === taskId && live.successWorkCount >= durable.successWorkCount
|
|
5
|
-
? live
|
|
6
|
-
: durable;
|
|
7
|
-
const shouldAdoptLedger = (live, candidate, taskId) => !live ||
|
|
8
|
-
live.taskId !== taskId ||
|
|
9
|
-
live.successWorkCount < candidate.successWorkCount;
|
|
10
|
-
export const resolveLedgerForTaskGate = (ports, plan, taskId) => {
|
|
11
|
-
const task = plan.tasks.find((candidate) => candidate.id === taskId);
|
|
12
|
-
const durable = ledgerFromTaskEvidence(taskId, task?.evidence);
|
|
13
|
-
const live = ports.getLiveLedger();
|
|
14
|
-
const ledger = absorbLooseWorkIntoLedger(preferLiveLedger(live, durable, taskId), taskId, task?.title ?? "", ports.getLooseWork(), { planKind: plan.kind });
|
|
15
|
-
if (ledger &&
|
|
16
|
-
ledger.successWorkCount > 0 &&
|
|
17
|
-
shouldAdoptLedger(live, ledger, taskId)) {
|
|
18
|
-
ports.setLiveLedger(ledger);
|
|
19
|
-
}
|
|
20
|
-
return ledger;
|
|
21
|
-
};
|
|
22
|
-
export const evaluateTaskCompletionGate = (ports, plan, taskId) => {
|
|
23
|
-
const task = plan.tasks.find((candidate) => candidate.id === taskId);
|
|
24
|
-
const ledger = resolveLedgerForTaskGate(ports, plan, taskId);
|
|
25
|
-
return canMarkTaskDone(ledger, taskId, {
|
|
26
|
-
taskTitle: task?.title,
|
|
27
|
-
featureAppRequired: ports.featureAppRequired,
|
|
28
|
-
existingProject: ports.existingProject(),
|
|
29
|
-
runtimeVerified: planHasVerifiedRuntime(plan),
|
|
30
|
-
planKind: plan.kind,
|
|
31
|
-
remoteWorkVerified: planHasVerifiedRemoteWork(plan),
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=task-gate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-gate.js","sourceRoot":"","sources":["../../../src/agent/turn/task-gate.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAU7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAiB,EAAW,EAAE,CACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAiB,EAAW,EAAE,CACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/D,MAAM,gBAAgB,GAAG,CACvB,IAA2B,EAC3B,OAAuB,EACvB,MAAc,EACE,EAAE,CAClB,IAAI,EAAE,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;IAC1E,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,OAAO,CAAC;AAEd,MAAM,iBAAiB,GAAG,CACxB,IAA2B,EAC3B,SAAyB,EACzB,MAAc,EACL,EAAE,CACX,CAAC,IAAI;IACL,IAAI,CAAC,MAAM,KAAK,MAAM;IACtB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAAoB,EACpB,IAAiB,EACjB,MAAc,EACS,EAAE;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,yBAAyB,CACtC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EACvC,MAAM,EACN,IAAI,EAAE,KAAK,IAAI,EAAE,EACjB,KAAK,CAAC,YAAY,EAAE,EACpB,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CACxB,CAAC;IACF,IACE,MAAM;QACN,MAAM,CAAC,gBAAgB,GAAG,CAAC;QAC3B,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EACvC,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAoB,EACpB,IAAiB,EACjB,MAAc,EACsB,EAAE;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE;QACrC,SAAS,EAAE,IAAI,EAAE,KAAK;QACtB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE;QACxC,eAAe,EAAE,sBAAsB,CAAC,IAAI,CAAC;QAC7C,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,kBAAkB,EAAE,yBAAyB,CAAC,IAAI,CAAC;KACpD,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { SessionPlan } from "../../store/plan.js";
|
|
2
|
-
export interface TaskUpdateRequest {
|
|
3
|
-
readonly state: string;
|
|
4
|
-
readonly taskId: string;
|
|
5
|
-
}
|
|
6
|
-
export type TaskUpdateGateResult = {
|
|
7
|
-
readonly ok: true;
|
|
8
|
-
} | {
|
|
9
|
-
readonly ok: false;
|
|
10
|
-
readonly reason: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const parseTaskUpdateRequest: (args: Record<string, unknown>) => TaskUpdateRequest;
|
|
13
|
-
export declare const decideTaskUpdateDoneGate: (plan: SessionPlan | undefined, taskId: string, completionGate: (plan: SessionPlan, taskId: string) => TaskUpdateGateResult) => TaskUpdateGateResult;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export const parseTaskUpdateRequest = (args) => ({
|
|
2
|
-
state: typeof args.state === "string" ? args.state : "",
|
|
3
|
-
taskId: typeof args.taskId === "string"
|
|
4
|
-
? args.taskId
|
|
5
|
-
: typeof args.id === "string"
|
|
6
|
-
? args.id
|
|
7
|
-
: "",
|
|
8
|
-
});
|
|
9
|
-
const dependenciesIncomplete = (plan, taskId) => {
|
|
10
|
-
const task = plan.tasks.find((candidate) => candidate.id === taskId);
|
|
11
|
-
return (task?.dependencies?.some((dependency) => {
|
|
12
|
-
const dependencyTask = plan.tasks.find((candidate) => candidate.id === dependency);
|
|
13
|
-
return (!dependencyTask ||
|
|
14
|
-
(dependencyTask.state !== "done" && dependencyTask.state !== "skipped"));
|
|
15
|
-
}) ?? false);
|
|
16
|
-
};
|
|
17
|
-
export const decideTaskUpdateDoneGate = (plan, taskId, completionGate) => {
|
|
18
|
-
if (!plan) {
|
|
19
|
-
return {
|
|
20
|
-
ok: false,
|
|
21
|
-
reason: `Task ${taskId} cannot be marked done because its active plan is unavailable.`,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const target = plan.tasks.find((candidate) => candidate.id === taskId);
|
|
25
|
-
const canSoftComplete = target?.state === "pending" && !dependenciesIncomplete(plan, taskId);
|
|
26
|
-
if (target?.state === "in_progress" || canSoftComplete) {
|
|
27
|
-
return completionGate(plan, taskId);
|
|
28
|
-
}
|
|
29
|
-
if (target?.state === "failed") {
|
|
30
|
-
return {
|
|
31
|
-
ok: false,
|
|
32
|
-
reason: `Task ${taskId} is failed — retry with in_progress first, then mark done after recovery work.`,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
ok: false,
|
|
37
|
-
reason: `Task ${taskId} must be in_progress before it can be marked done. Start or retry the task, perform fresh work, then complete it.`,
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=task-update-gate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-update-gate.js","sourceRoot":"","sources":["../../../src/agent/turn/task-update-gate.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAA6B,EACV,EAAE,CAAC,CAAC;IACvB,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACvD,MAAM,EACJ,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAC7B,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;YAC3B,CAAC,CAAC,IAAI,CAAC,EAAE;YACT,CAAC,CAAC,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAC7B,IAAiB,EACjB,MAAc,EACL,EAAE;IACX,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACrE,OAAO,CACL,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACpC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,UAAU,CAC3C,CAAC;QACF,OAAO,CACL,CAAC,cAAc;YACf,CAAC,cAAc,CAAC,KAAK,KAAK,MAAM,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,CAAC,CACxE,CAAC;IACJ,CAAC,CAAC,IAAI,KAAK,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAA6B,EAC7B,MAAc,EACd,cAA2E,EACrD,EAAE;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,QAAQ,MAAM,gEAAgE;SACvF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACvE,MAAM,eAAe,GACnB,MAAM,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,MAAM,EAAE,KAAK,KAAK,aAAa,IAAI,eAAe,EAAE,CAAC;QACvD,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,QAAQ,MAAM,gFAAgF;SACvG,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,QAAQ,MAAM,mHAAmH;KAC1I,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type TaskState = "pending" | "in_progress" | "done" | "failed" | "skipped";
|
|
2
|
-
export type TaskTransitionDenialCode = "terminal" | "retry-required" | "unsupported";
|
|
3
|
-
export interface TaskTransitionDenied {
|
|
4
|
-
readonly allowed: false;
|
|
5
|
-
readonly code: TaskTransitionDenialCode;
|
|
6
|
-
readonly reason: string;
|
|
7
|
-
}
|
|
8
|
-
export type TaskTransitionResult = {
|
|
9
|
-
readonly allowed: true;
|
|
10
|
-
} | TaskTransitionDenied;
|
|
11
|
-
export declare function isTerminalTaskState(state: TaskState): boolean;
|
|
12
|
-
export declare function evaluateTaskTransition(from: TaskState, to: TaskState): TaskTransitionResult;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
const ALLOWED = {
|
|
2
|
-
pending: ["in_progress", "done", "failed", "skipped"],
|
|
3
|
-
in_progress: ["pending", "done", "failed", "skipped"],
|
|
4
|
-
failed: ["in_progress", "skipped"],
|
|
5
|
-
done: [],
|
|
6
|
-
skipped: [],
|
|
7
|
-
};
|
|
8
|
-
const TERMINAL_STATES = new Set([
|
|
9
|
-
"done",
|
|
10
|
-
"skipped",
|
|
11
|
-
]);
|
|
12
|
-
export function isTerminalTaskState(state) {
|
|
13
|
-
return TERMINAL_STATES.has(state);
|
|
14
|
-
}
|
|
15
|
-
export function evaluateTaskTransition(from, to) {
|
|
16
|
-
if (from === to)
|
|
17
|
-
return { allowed: true };
|
|
18
|
-
if ((ALLOWED[from] ?? []).includes(to))
|
|
19
|
-
return { allowed: true };
|
|
20
|
-
if (TERMINAL_STATES.has(from)) {
|
|
21
|
-
return {
|
|
22
|
-
allowed: false,
|
|
23
|
-
code: "terminal",
|
|
24
|
-
reason: `already ${from} — completed work is not reopened by task.update; add a follow-up task instead`,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (from === "failed" && to === "done") {
|
|
28
|
-
return {
|
|
29
|
-
allowed: false,
|
|
30
|
-
code: "retry-required",
|
|
31
|
-
reason: "is failed — reopen it with state:\"in_progress\" and redo the work before marking it done",
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
allowed: false,
|
|
36
|
-
code: "unsupported",
|
|
37
|
-
reason: `cannot move from ${from} to ${to}`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=task-transitions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-transitions.js","sourceRoot":"","sources":["../../src/store/task-transitions.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,GAAsD;IACjE,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrD,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,eAAe,GAA2B,IAAI,GAAG,CAAY;IACjE,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAClD,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAe,EACf,EAAa;IAEb,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjE,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,WAAW,IAAI,gFAAgF;SACxG,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,gBAAgB;YACtB,MAAM,EACJ,2FAA2F;SAC9F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,oBAAoB,IAAI,OAAO,EAAE,EAAE;KAC5C,CAAC;AACJ,CAAC"}
|