pi-harness-runtime 1.1.228 → 1.1.230
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/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
- package/packages/jev-judge/dist/auto-continue.js +2 -1
- package/packages/jev-judge/dist/auto-continue.js.map +1 -1
- package/packages/jev-judge/dist/continuation-controller.d.ts.map +1 -1
- package/packages/jev-judge/dist/continuation-controller.js +2 -1
- package/packages/jev-judge/dist/continuation-controller.js.map +1 -1
- package/packages/jev-judge/dist/environment-judge.d.ts.map +1 -1
- package/packages/jev-judge/dist/environment-judge.js +2 -1
- package/packages/jev-judge/dist/environment-judge.js.map +1 -1
- package/packages/jev-judge/dist/file-logger.d.ts +7 -0
- package/packages/jev-judge/dist/file-logger.d.ts.map +1 -0
- package/packages/jev-judge/dist/file-logger.js +19 -0
- package/packages/jev-judge/dist/file-logger.js.map +1 -0
- package/packages/jev-judge/dist/todo-provider.d.ts +4 -1
- package/packages/jev-judge/dist/todo-provider.d.ts.map +1 -1
- package/packages/jev-judge/dist/todo-provider.js +114 -5
- package/packages/jev-judge/dist/todo-provider.js.map +1 -1
- package/packages/jev-judge/dist/typesafe-provider.d.ts +1 -0
- package/packages/jev-judge/dist/typesafe-provider.d.ts.map +1 -1
- package/packages/jev-judge/dist/typesafe-provider.js +15 -13
- package/packages/jev-judge/dist/typesafe-provider.js.map +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/auto-continue.ts +2 -1
- package/packages/jev-judge/src/continuation-controller.ts +2 -1
- package/packages/jev-judge/src/environment-judge.ts +2 -1
- package/packages/jev-judge/src/file-logger.ts +21 -0
- package/packages/jev-judge/src/todo-provider.ts +140 -5
- package/packages/jev-judge/src/typesafe-provider.ts +32 -23
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-provider.d.ts","sourceRoot":"","sources":["../src/todo-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErD;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEhC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACpD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAK;IAEtB,YAAY,SAAS,CAAC,EAAE,MAAM,EAE7B;IAEK,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE9C;IAEK,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAQzC;IAEK,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEzD;IAEK,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEzC;IAEK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEtC;IAEK,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAExC;IAEK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASpC;IAEK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAStC;IAGD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAK5C;IAED,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAK9C;IAED,KAAK,IAAI,IAAI,CAGZ;CACD;
|
|
1
|
+
{"version":3,"file":"todo-provider.d.ts","sourceRoot":"","sources":["../src/todo-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErD;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEhC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACpD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAK;IAEtB,YAAY,SAAS,CAAC,EAAE,MAAM,EAE7B;IAEK,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE9C;IAEK,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAQzC;IAEK,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEzD;IAEK,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEzC;IAEK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEtC;IAEK,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAExC;IAEK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASpC;IAEK,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAStC;IAGD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAK5C;IAED,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAK9C;IAED,KAAK,IAAI,IAAI,CAGZ;CACD;AAYD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAKlE;AAmKD;;GAEG"}
|
|
@@ -75,14 +75,120 @@ export class MockTodoProvider {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* Create a todo provider
|
|
78
|
+
* Create a todo provider that reads from rpiv-todo state via session branch
|
|
79
79
|
*/
|
|
80
80
|
export function createTodoProvider(pi) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
if (pi && "sessionManager" in pi) {
|
|
82
|
+
return new PiTodoProvider(pi);
|
|
83
|
+
}
|
|
84
84
|
return new PiUnavailableTodoProvider();
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Provider that reads rpiv-todo state from session branch
|
|
88
|
+
* Replicates rpiv-todo's replayFromBranch logic to access todo state
|
|
89
|
+
*/
|
|
90
|
+
class PiTodoProvider {
|
|
91
|
+
pi;
|
|
92
|
+
_revision = 0;
|
|
93
|
+
constructor(pi) {
|
|
94
|
+
this.pi = pi;
|
|
95
|
+
}
|
|
96
|
+
async availability() {
|
|
97
|
+
if (!this.pi.sessionManager) {
|
|
98
|
+
return {
|
|
99
|
+
available: false,
|
|
100
|
+
error: "Session manager not available",
|
|
101
|
+
provider: "pi-todo",
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return { available: true, provider: "pi-todo" };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if a value is a TaskDetails shape (defensive validation)
|
|
108
|
+
*/
|
|
109
|
+
isTaskDetails(value) {
|
|
110
|
+
if (!value || typeof value !== "object")
|
|
111
|
+
return false;
|
|
112
|
+
const v = value;
|
|
113
|
+
return Array.isArray(v.tasks) && typeof v.nextId === "number";
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get todo state from session branch (replicates rpiv-todo's replayFromBranch)
|
|
117
|
+
*/
|
|
118
|
+
getTodoState() {
|
|
119
|
+
let fromEntries;
|
|
120
|
+
let fromToolResults;
|
|
121
|
+
try {
|
|
122
|
+
for (const entry of this.pi.sessionManager.getBranch()) {
|
|
123
|
+
const e = entry;
|
|
124
|
+
// Priority 1: rpiv-todo-state custom entries
|
|
125
|
+
if (e.type === "custom") {
|
|
126
|
+
if (e.customType === "rpiv-todo-state" && this.isTaskDetails(e.data)) {
|
|
127
|
+
fromEntries = { tasks: e.data.tasks.map(t => ({ ...t })), nextId: e.data.nextId };
|
|
128
|
+
}
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// Priority 2: toolResult entries with toolName === "todo"
|
|
132
|
+
if (e.type !== "message")
|
|
133
|
+
continue;
|
|
134
|
+
const msg = e.message;
|
|
135
|
+
if (msg?.role !== "toolResult" || msg.toolName !== "todo")
|
|
136
|
+
continue;
|
|
137
|
+
if (!this.isTaskDetails(msg.details))
|
|
138
|
+
continue;
|
|
139
|
+
fromToolResults = { tasks: msg.details.tasks.map(t => ({ ...t })), nextId: msg.details.nextId };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
// Fall through to EMPTY_STATE on error
|
|
144
|
+
}
|
|
145
|
+
// Prefer custom entries (more authoritative), fall back to tool results
|
|
146
|
+
return fromEntries ?? fromToolResults ?? { tasks: [], nextId: 1 };
|
|
147
|
+
}
|
|
148
|
+
async getSnapshot() {
|
|
149
|
+
this._revision++;
|
|
150
|
+
const state = this.getTodoState();
|
|
151
|
+
return {
|
|
152
|
+
items: state.tasks,
|
|
153
|
+
sessionId: this.pi.sessionManager.getSessionId() ?? "unknown",
|
|
154
|
+
revision: this._revision,
|
|
155
|
+
createdAt: new Date(),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
async getByStatus(status) {
|
|
159
|
+
const { items } = await this.getSnapshot();
|
|
160
|
+
return items.filter((item) => item.status === status);
|
|
161
|
+
}
|
|
162
|
+
async getInProgress() {
|
|
163
|
+
return this.getByStatus("in_progress");
|
|
164
|
+
}
|
|
165
|
+
async getPending() {
|
|
166
|
+
return this.getByStatus("pending");
|
|
167
|
+
}
|
|
168
|
+
async getCompleted() {
|
|
169
|
+
return this.getByStatus("completed");
|
|
170
|
+
}
|
|
171
|
+
async getReady() {
|
|
172
|
+
const pending = await this.getPending();
|
|
173
|
+
const all = (await this.getSnapshot()).items;
|
|
174
|
+
return pending.filter((item) => {
|
|
175
|
+
if (!item.blockedBy?.length)
|
|
176
|
+
return true;
|
|
177
|
+
const blockedIds = new Set(item.blockedBy);
|
|
178
|
+
return !all.some((i) => blockedIds.has(i.id) && i.status !== "completed");
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
async getBlocked() {
|
|
182
|
+
const pending = await this.getPending();
|
|
183
|
+
const all = (await this.getSnapshot()).items;
|
|
184
|
+
return pending.filter((item) => {
|
|
185
|
+
if (!item.blockedBy?.length)
|
|
186
|
+
return false;
|
|
187
|
+
const blockedIds = new Set(item.blockedBy);
|
|
188
|
+
return all.some((i) => blockedIds.has(i.id) && i.status !== "completed");
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
86
192
|
/**
|
|
87
193
|
* Provider that reports Pi todo extension is not available
|
|
88
194
|
*/
|
|
@@ -90,7 +196,7 @@ class PiUnavailableTodoProvider {
|
|
|
90
196
|
async availability() {
|
|
91
197
|
return {
|
|
92
198
|
available: false,
|
|
93
|
-
error: "Pi
|
|
199
|
+
error: "Pi session manager not available. Todo state is not accessible.",
|
|
94
200
|
provider: "pi-todo",
|
|
95
201
|
};
|
|
96
202
|
}
|
|
@@ -116,4 +222,7 @@ class PiUnavailableTodoProvider {
|
|
|
116
222
|
return [];
|
|
117
223
|
}
|
|
118
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Provider that reports Pi todo extension is not available
|
|
227
|
+
*/
|
|
119
228
|
//# sourceMappingURL=todo-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-provider.js","sourceRoot":"","sources":["../src/todo-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuFH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACpB,KAAK,GAAe,EAAE,CAAC;IACvB,UAAU,CAAS;IACnB,SAAS,GAAG,CAAC,CAAC;IAEtB,YAAY,SAAkB;QAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO;YACN,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAkB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO,CAAC,IAA0B;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,MAAkB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"todo-provider.js","sourceRoot":"","sources":["../src/todo-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typesafe-provider.d.ts","sourceRoot":"","sources":["../src/typesafe-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,YAAY,EAGZ,mBAAmB,EAIpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"typesafe-provider.d.ts","sourceRoot":"","sources":["../src/typesafe-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,YAAY,EAGZ,mBAAmB,EAIpB,MAAM,YAAY,CAAC;AAkDpB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA2B;IAEzC,YAAY,MAAM,EAAE,cAAc,EAKjC;IAED;;OAEG;IACG,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CA2EjC;IAED;;OAEG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;KAAE,CAAC,CAWlE;IAED;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAW5C;IAED;;OAEG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAI,EACP,GAAG,SAAM,GACR,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAWhD;IAED;;OAEG;IACH,OAAO,CAAC,aAAa;IA2DrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAOtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,UAAU,GAAG,YAAY,CAgB3B"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* Default configuration
|
|
12
12
|
*/
|
|
13
13
|
const DEFAULT_CONFIG = {
|
|
14
|
+
model: "jev-latest",
|
|
14
15
|
baseUrl: "https://api.typesafe.ai",
|
|
15
16
|
timeoutMs: 30000,
|
|
16
17
|
};
|
|
@@ -35,25 +36,24 @@ export class TypeSafeJudge {
|
|
|
35
36
|
const startTime = Date.now();
|
|
36
37
|
// Convert state to string if object
|
|
37
38
|
const stateStr = typeof state === "string" ? state : JSON.stringify(state);
|
|
38
|
-
// Build TypeSafe question format
|
|
39
|
-
const
|
|
39
|
+
// Build TypeSafe question format as a map (not array)
|
|
40
|
+
const questionsMap = {};
|
|
41
|
+
for (const [id, q] of Object.entries(questions)) {
|
|
40
42
|
const questionObj = q;
|
|
41
|
-
|
|
42
|
-
id,
|
|
43
|
+
questionsMap[id] = {
|
|
43
44
|
type: questionObj.type,
|
|
44
45
|
instructions: questionObj.instructions,
|
|
45
46
|
};
|
|
46
47
|
if (questionObj.type === "choice") {
|
|
47
|
-
|
|
48
|
+
questionsMap[id].options = questionObj.options;
|
|
48
49
|
// For choice questions, criteria defines ordered preference levels
|
|
49
|
-
|
|
50
|
+
questionsMap[id].criteria = questionObj.options;
|
|
50
51
|
}
|
|
51
52
|
else if (questionObj.type === "score") {
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
questionsMap[id].min = questionObj.min ?? 0;
|
|
54
|
+
questionsMap[id].max = questionObj.max ?? 100;
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
-
});
|
|
56
|
+
}
|
|
57
57
|
// Call TypeSafe API directly
|
|
58
58
|
const response = await fetch(`${this.config.baseUrl}/v1/systemone`, {
|
|
59
59
|
method: "POST",
|
|
@@ -62,7 +62,8 @@ export class TypeSafeJudge {
|
|
|
62
62
|
Authorization: `Bearer ${this.config.apiKey}`,
|
|
63
63
|
},
|
|
64
64
|
body: JSON.stringify({
|
|
65
|
-
|
|
65
|
+
model: this.config.model,
|
|
66
|
+
questions: questionsMap,
|
|
66
67
|
state: stateStr,
|
|
67
68
|
}),
|
|
68
69
|
signal: AbortSignal.timeout(this.config.timeoutMs),
|
|
@@ -142,11 +143,12 @@ export class TypeSafeJudge {
|
|
|
142
143
|
let probability;
|
|
143
144
|
switch (answer.type) {
|
|
144
145
|
case "noul":
|
|
146
|
+
// FIX: Use answer.noul (not probability) per TypeSafe API spec
|
|
145
147
|
response = {
|
|
146
148
|
type: "noul",
|
|
147
|
-
noul: answer.
|
|
149
|
+
noul: answer.noul ?? 0.5,
|
|
148
150
|
};
|
|
149
|
-
probability = answer.
|
|
151
|
+
probability = answer.noul ?? 0.5;
|
|
150
152
|
break;
|
|
151
153
|
case "choice":
|
|
152
154
|
response = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typesafe-provider.js","sourceRoot":"","sources":["../src/typesafe-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"typesafe-provider.js","sourceRoot":"","sources":["../src/typesafe-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
import { JevJudge } from "./index.js";
|
|
12
12
|
import type { JevJudgeConfig, JevEvaluationResult } from "./types.js";
|
|
13
|
+
import { logError } from "./file-logger.js";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Task tracking state
|
|
@@ -128,7 +129,7 @@ export class AutoContinueJudge {
|
|
|
128
129
|
|
|
129
130
|
return this.buildDecision(result, taskState);
|
|
130
131
|
} catch (error) {
|
|
131
|
-
|
|
132
|
+
logError("[AutoContinueJudge]", `Jev call failed: ${error}`);
|
|
132
133
|
return this.fallbackDecision(taskState);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
@@ -67,7 +67,7 @@ export interface ContinuationResult {
|
|
|
67
67
|
export class TodoContinuationController {
|
|
68
68
|
private pi: ExtensionAPI;
|
|
69
69
|
private config: Required<ContinuationConfig>;
|
|
70
|
-
private todoProvider
|
|
70
|
+
private todoProvider: ReturnType<typeof createTodoProvider>;
|
|
71
71
|
|
|
72
72
|
private state: ContinuationState = {
|
|
73
73
|
sessionId: "",
|
|
@@ -85,6 +85,7 @@ export class TodoContinuationController {
|
|
|
85
85
|
|
|
86
86
|
constructor(pi: ExtensionAPI, config?: ContinuationConfig) {
|
|
87
87
|
this.pi = pi;
|
|
88
|
+
this.todoProvider = createTodoProvider(pi);
|
|
88
89
|
this.config = {
|
|
89
90
|
jevFallbackMinWaitMs: 5 * 60 * 1000, // 5 minutes
|
|
90
91
|
routineThreshold: 0.7,
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { JevJudge, getApiKeyFromEnv } from "./index.js";
|
|
12
|
+
import { logError } from "./file-logger.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Environment context
|
|
@@ -235,7 +236,7 @@ export class EnvironmentJudge {
|
|
|
235
236
|
recommendedActions,
|
|
236
237
|
};
|
|
237
238
|
} catch (error) {
|
|
238
|
-
|
|
239
|
+
logError("[EnvironmentJudge]", `Jev call failed: ${error}`);
|
|
239
240
|
return this.fallbackDecision(ctx);
|
|
240
241
|
}
|
|
241
242
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File logger for jev-judge package
|
|
3
|
+
* Routes console output to file to avoid TUI interference
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { appendFileSync } from "node:fs";
|
|
7
|
+
|
|
8
|
+
const LOG_FILE = "/tmp/pi-harness-jev.log";
|
|
9
|
+
|
|
10
|
+
export function logToFile(prefix: string, ...parts: unknown[]): void {
|
|
11
|
+
try {
|
|
12
|
+
const msg = parts.map((p) => typeof p === "string" ? p : JSON.stringify(p)).join(" ");
|
|
13
|
+
appendFileSync(LOG_FILE, `[${new Date().toISOString()}] ${prefix} ${msg}\n`);
|
|
14
|
+
} catch {
|
|
15
|
+
// Silently fail if logging fails
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function logError(prefix: string, msg: string): void {
|
|
20
|
+
logToFile(prefix, msg);
|
|
21
|
+
}
|
|
@@ -176,15 +176,145 @@ export class MockTodoProvider implements TodoProvider {
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
/**
|
|
179
|
-
*
|
|
179
|
+
* Extended ExtensionAPI type with sessionManager (not in base type but available at runtime)
|
|
180
|
+
*/
|
|
181
|
+
interface PiExtensionAPI extends ExtensionAPI {
|
|
182
|
+
sessionManager: {
|
|
183
|
+
getSessionId(): string;
|
|
184
|
+
getBranch(): Iterable<unknown>;
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Create a todo provider that reads from rpiv-todo state via session branch
|
|
180
190
|
*/
|
|
181
191
|
export function createTodoProvider(pi?: ExtensionAPI): TodoProvider {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
192
|
+
if (pi && "sessionManager" in pi) {
|
|
193
|
+
return new PiTodoProvider(pi as PiExtensionAPI);
|
|
194
|
+
}
|
|
185
195
|
return new PiUnavailableTodoProvider();
|
|
186
196
|
}
|
|
187
197
|
|
|
198
|
+
/**
|
|
199
|
+
* Provider that reads rpiv-todo state from session branch
|
|
200
|
+
* Replicates rpiv-todo's replayFromBranch logic to access todo state
|
|
201
|
+
*/
|
|
202
|
+
class PiTodoProvider implements TodoProvider {
|
|
203
|
+
private pi: PiExtensionAPI;
|
|
204
|
+
private _revision = 0;
|
|
205
|
+
|
|
206
|
+
constructor(pi: PiExtensionAPI) {
|
|
207
|
+
this.pi = pi;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
async availability(): Promise<TodoAvailability> {
|
|
211
|
+
if (!this.pi.sessionManager) {
|
|
212
|
+
return {
|
|
213
|
+
available: false,
|
|
214
|
+
error: "Session manager not available",
|
|
215
|
+
provider: "pi-todo",
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
return { available: true, provider: "pi-todo" };
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Check if a value is a TaskDetails shape (defensive validation)
|
|
223
|
+
*/
|
|
224
|
+
private isTaskDetails(value: unknown): value is { tasks: TodoItem[]; nextId: number } {
|
|
225
|
+
if (!value || typeof value !== "object") return false;
|
|
226
|
+
const v = value as Record<string, unknown>;
|
|
227
|
+
return Array.isArray(v.tasks) && typeof v.nextId === "number";
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Get todo state from session branch (replicates rpiv-todo's replayFromBranch)
|
|
232
|
+
*/
|
|
233
|
+
private getTodoState(): { tasks: TodoItem[]; nextId: number } {
|
|
234
|
+
let fromEntries: { tasks: TodoItem[]; nextId: number } | undefined;
|
|
235
|
+
let fromToolResults: { tasks: TodoItem[]; nextId: number } | undefined;
|
|
236
|
+
|
|
237
|
+
try {
|
|
238
|
+
for (const entry of this.pi.sessionManager.getBranch()) {
|
|
239
|
+
const e = entry as {
|
|
240
|
+
type?: string;
|
|
241
|
+
customType?: string;
|
|
242
|
+
data?: unknown;
|
|
243
|
+
message?: { role?: string; toolName?: string; details?: unknown };
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
// Priority 1: rpiv-todo-state custom entries
|
|
247
|
+
if (e.type === "custom") {
|
|
248
|
+
if (e.customType === "rpiv-todo-state" && this.isTaskDetails(e.data)) {
|
|
249
|
+
fromEntries = { tasks: (e.data as { tasks: TodoItem[] }).tasks.map(t => ({ ...t })), nextId: (e.data as { nextId: number }).nextId };
|
|
250
|
+
}
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Priority 2: toolResult entries with toolName === "todo"
|
|
255
|
+
if (e.type !== "message") continue;
|
|
256
|
+
const msg = e.message;
|
|
257
|
+
if (msg?.role !== "toolResult" || msg.toolName !== "todo") continue;
|
|
258
|
+
if (!this.isTaskDetails(msg.details)) continue;
|
|
259
|
+
fromToolResults = { tasks: (msg.details as { tasks: TodoItem[] }).tasks.map(t => ({ ...t })), nextId: (msg.details as { nextId: number }).nextId };
|
|
260
|
+
}
|
|
261
|
+
} catch (err) {
|
|
262
|
+
// Fall through to EMPTY_STATE on error
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Prefer custom entries (more authoritative), fall back to tool results
|
|
266
|
+
return fromEntries ?? fromToolResults ?? { tasks: [], nextId: 1 };
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
async getSnapshot(): Promise<TodoSnapshot> {
|
|
270
|
+
this._revision++;
|
|
271
|
+
const state = this.getTodoState();
|
|
272
|
+
return {
|
|
273
|
+
items: state.tasks,
|
|
274
|
+
sessionId: this.pi.sessionManager.getSessionId() ?? "unknown",
|
|
275
|
+
revision: this._revision,
|
|
276
|
+
createdAt: new Date(),
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
async getByStatus(status: TodoStatus): Promise<TodoItem[]> {
|
|
281
|
+
const { items } = await this.getSnapshot();
|
|
282
|
+
return items.filter((item) => item.status === status);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async getInProgress(): Promise<TodoItem[]> {
|
|
286
|
+
return this.getByStatus("in_progress");
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
async getPending(): Promise<TodoItem[]> {
|
|
290
|
+
return this.getByStatus("pending");
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
async getCompleted(): Promise<TodoItem[]> {
|
|
294
|
+
return this.getByStatus("completed");
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
async getReady(): Promise<TodoItem[]> {
|
|
298
|
+
const pending = await this.getPending();
|
|
299
|
+
const all = (await this.getSnapshot()).items;
|
|
300
|
+
return pending.filter((item) => {
|
|
301
|
+
if (!item.blockedBy?.length) return true;
|
|
302
|
+
const blockedIds = new Set(item.blockedBy);
|
|
303
|
+
return !all.some((i) => blockedIds.has(i.id) && i.status !== "completed");
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
async getBlocked(): Promise<TodoItem[]> {
|
|
308
|
+
const pending = await this.getPending();
|
|
309
|
+
const all = (await this.getSnapshot()).items;
|
|
310
|
+
return pending.filter((item) => {
|
|
311
|
+
if (!item.blockedBy?.length) return false;
|
|
312
|
+
const blockedIds = new Set(item.blockedBy);
|
|
313
|
+
return all.some((i) => blockedIds.has(i.id) && i.status !== "completed");
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
188
318
|
/**
|
|
189
319
|
* Provider that reports Pi todo extension is not available
|
|
190
320
|
*/
|
|
@@ -192,7 +322,7 @@ class PiUnavailableTodoProvider implements TodoProvider {
|
|
|
192
322
|
async availability(): Promise<TodoAvailability> {
|
|
193
323
|
return {
|
|
194
324
|
available: false,
|
|
195
|
-
error: "Pi
|
|
325
|
+
error: "Pi session manager not available. Todo state is not accessible.",
|
|
196
326
|
provider: "pi-todo",
|
|
197
327
|
};
|
|
198
328
|
}
|
|
@@ -225,3 +355,8 @@ class PiUnavailableTodoProvider implements TodoProvider {
|
|
|
225
355
|
return [];
|
|
226
356
|
}
|
|
227
357
|
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Provider that reports Pi todo extension is not available
|
|
361
|
+
*/
|
|
362
|
+
|