@adhdev/mesh-shared 1.0.82-rc.26 → 1.0.82-rc.29

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.
@@ -107,6 +107,7 @@ export interface AssistantRemoteAccessBinding {
107
107
  grantRevision: number;
108
108
  status: 'active' | 'revoked';
109
109
  allowedOps: readonly AssistantFollowerAllowedOp[];
110
+ allowCoordinatorLaunch?: boolean;
110
111
  grantedAt: number;
111
112
  revokedAt?: number;
112
113
  }
@@ -142,6 +143,7 @@ export interface FollowedRemoteProjectEntry {
142
143
  accountSlot: AssistantAccountSlot;
143
144
  bindingRevision: number;
144
145
  grantRevision: number;
146
+ allowCoordinatorLaunch?: boolean;
145
147
  state: FollowedRemoteProjectState;
146
148
  followedAt: number | string;
147
149
  updatedAt: number | string;
@@ -170,6 +172,7 @@ export interface RemoteProjectCatalogItem {
170
172
  name: string;
171
173
  sanitizedRepoIdentity: string | null;
172
174
  coordinatorState?: 'none' | 'idle' | 'working' | 'waiting' | string;
175
+ allowCoordinatorLaunch?: boolean;
173
176
  capabilities: {
174
177
  status: true;
175
178
  read: true;
@@ -177,6 +180,7 @@ export interface RemoteProjectCatalogItem {
177
180
  report: true;
178
181
  send: true;
179
182
  coordinatorPresent?: boolean;
183
+ allowCoordinatorLaunch?: boolean;
180
184
  };
181
185
  observedAt: number | string;
182
186
  }
package/dist/index.d.ts CHANGED
@@ -45,3 +45,4 @@ export * from './provider-approval';
45
45
  export * from './provider-question';
46
46
  export * from './launch-defaults';
47
47
  export * from './role-launch';
48
+ export * from './task-source-phase';
package/dist/index.js CHANGED
@@ -206,6 +206,8 @@ __export(index_exports, {
206
206
  decodeQueueQueryResponse: () => decodeQueueQueryResponse,
207
207
  decodeQueueRequeueRequest: () => decodeQueueRequeueRequest,
208
208
  decodeQueueRequeueResponse: () => decodeQueueRequeueResponse,
209
+ decodeQueueReviseRequest: () => decodeQueueReviseRequest,
210
+ decodeQueueReviseResponse: () => decodeQueueReviseResponse,
209
211
  decodeRecordLocalRequest: () => decodeRecordLocalRequest,
210
212
  decodeRecordLocalResponse: () => decodeRecordLocalResponse,
211
213
  decodeRecoveryContextQueryRequest: () => decodeRecoveryContextQueryRequest,
@@ -708,8 +710,10 @@ function backfillCheckAt(quota, now) {
708
710
  function assessQuotaFreshness(quota, now = Date.now()) {
709
711
  const meta = quota.metadata;
710
712
  const kind = meta?.failureKind;
711
- const userMustAct = kind === "no-data" && quota.provider !== "codex-cli" || kind === "expired-token" && ["grok-cli", "kimi", "antigravity-cli"].includes(quota.provider);
713
+ const userMustAct = kind === "no-data" && quota.provider !== "codex-cli";
714
+ const awaitsCliUse = kind === "expired-token" && ["grok-cli", "kimi", "antigravity-cli"].includes(quota.provider);
712
715
  if (userMustAct) return hasReading(quota) ? { cue: "stale", userMustAct: true } : { userMustAct: true };
716
+ if (awaitsCliUse) return hasReading(quota) ? { cue: "stale", userMustAct: false } : { userMustAct: false };
713
717
  if (meta?.lastGoodWindows !== true) {
714
718
  const measuredAt = finiteMs(quota.updatedAt);
715
719
  if (hasReading(quota) && (measuredAt === void 0 || now - measuredAt >= QUOTA_BACKFILL_HORIZON_MS)) {
@@ -756,19 +760,21 @@ function isPhantomDaemonEntry(entry) {
756
760
  function machineCoreFromDaemonId(id2) {
757
761
  const trimmed = readString(id2);
758
762
  if (!trimmed) return void 0;
763
+ const lower = trimmed.toLowerCase();
759
764
  for (const prefix of DAEMON_ID_PREFIXES) {
760
- if (trimmed.startsWith(prefix)) {
765
+ if (lower.startsWith(prefix)) {
761
766
  const core = trimmed.slice(prefix.length).trim();
762
- return core || void 0;
767
+ if (!core) return void 0;
768
+ return /^mach_/i.test(core) ? `mach_${core.slice(5)}` : core;
763
769
  }
764
770
  }
765
- return trimmed;
771
+ return /^mach_/i.test(trimmed) ? `mach_${trimmed.slice(5)}` : trimmed;
766
772
  }
767
773
  function canonicalDaemonId(id2) {
768
774
  const core = machineCoreFromDaemonId(id2);
769
775
  if (!core) return void 0;
770
- if (!core.startsWith("mach_")) return core;
771
- return `daemon_${core}`;
776
+ if (!/^mach_/i.test(core)) return core;
777
+ return `daemon_mach_${core.slice(5)}`;
772
778
  }
773
779
  function daemonIdsEquivalent(a, b) {
774
780
  const coreA = machineCoreFromDaemonId(a);
@@ -1135,6 +1141,7 @@ var CANONICAL_MESH_TOOL_NAMES = [
1135
1141
  "mesh_view_queue",
1136
1142
  "mesh_queue_cancel",
1137
1143
  "mesh_queue_requeue",
1144
+ "mesh_queue_revise",
1138
1145
  "mesh_send_task",
1139
1146
  "mesh_read_chat",
1140
1147
  "mesh_read_debug",
@@ -1856,8 +1863,8 @@ function isIdleSessionState(state) {
1856
1863
  }
1857
1864
 
1858
1865
  // src/mesh-vocabulary.ts
1859
- var MESH_TASK_STATUSES = ["pending", "assigned", "completed", "failed", "cancelled"];
1860
- var MESH_TERMINAL_TASK_STATUSES = ["completed", "failed", "cancelled"];
1866
+ var MESH_TASK_STATUSES = ["pending", "assigned", "completed", "blocked", "failed", "cancelled"];
1867
+ var MESH_TERMINAL_TASK_STATUSES = ["completed", "blocked", "failed", "cancelled"];
1861
1868
  var MESH_TASK_MODES = ["code_change", "validation", "live_debug_readonly", "launch_app", "convergence"];
1862
1869
  var MESH_TASK_PRIORITIES = ["low", "normal", "high"];
1863
1870
  var MESH_THINKING_LEVELS = ["low", "medium", "high"];
@@ -2378,7 +2385,7 @@ var HOLD_REASONS = [
2378
2385
  "await_end",
2379
2386
  "report_correction"
2380
2387
  ];
2381
- var TURN_OUTCOMES = ["completed", "failed", "cancelled"];
2388
+ var TURN_OUTCOMES = ["completed", "blocked", "failed", "cancelled"];
2382
2389
  var COMMIT_STRENGTHS = ["genuine", "weak", "tool_report", "operator"];
2383
2390
  var TURN_REASONS = [
2384
2391
  // commits
@@ -2423,6 +2430,7 @@ var TURN_REASONS = [
2423
2430
  ];
2424
2431
  var NOTIFY_KINDS = [
2425
2432
  "completed",
2433
+ "blocked",
2426
2434
  "failed",
2427
2435
  "cancelled",
2428
2436
  "stopped",
@@ -2916,7 +2924,7 @@ function isTurnAttemptRefValue(value) {
2916
2924
  function isTurnObserveResponse(value) {
2917
2925
  return isRecord(value) && hasOnlyKeys2(value, ["verdict", "attemptRef", "outcome"]) && isTurnObserveVerdict(value.verdict) && isTurnAttemptRefValue(value.attemptRef) && (value.outcome === void 0 || isTurnOutcomeValue(value.outcome));
2918
2926
  }
2919
- var TURN_OUTCOMES_LOCAL = ["completed", "failed", "cancelled"];
2927
+ var TURN_OUTCOMES_LOCAL = ["completed", "blocked", "failed", "cancelled"];
2920
2928
  function isTurnOutcomeValue(value) {
2921
2929
  return typeof value === "string" && TURN_OUTCOMES_LOCAL.includes(value);
2922
2930
  }
@@ -3217,12 +3225,13 @@ function isMeshMissionTaskAggregateWire(value) {
3217
3225
  return value.lastActivityAt === null || typeof value.lastActivityAt === "string";
3218
3226
  }
3219
3227
  function isMeshMissionStatsWire(value) {
3220
- const keys = ["missionId", "taskCount", "completed", "failed", "totalDurationMs", "wallClockMs", "retries", "incompleteTaskIds"];
3228
+ const keys = ["missionId", "taskCount", "completed", "failed", "blocked", "totalDurationMs", "wallClockMs", "retries", "incompleteTaskIds"];
3221
3229
  if (!isRecord(value) || !hasOnlyKeys2(value, keys)) return false;
3222
3230
  if (!isEvidenceIdentifier(value.missionId)) return false;
3223
3231
  for (const k of ["taskCount", "completed", "failed", "totalDurationMs", "retries"]) {
3224
3232
  if (!isNonNegativeInt(value[k])) return false;
3225
3233
  }
3234
+ if (value.blocked !== void 0 && !isNonNegativeInt(value.blocked)) return false;
3226
3235
  if (value.wallClockMs !== null && !isNonNegativeInt(value.wallClockMs)) return false;
3227
3236
  if (!Array.isArray(value.incompleteTaskIds) || !value.incompleteTaskIds.every(isEvidenceIdentifier)) return false;
3228
3237
  return true;
@@ -3344,12 +3353,13 @@ function isLedgerQueryEntryWire(value) {
3344
3353
  return true;
3345
3354
  }
3346
3355
  function isLedgerQuerySummaryWire(value) {
3347
- const keys = ["meshId", "totalEntries", "taskDispatched", "taskCompleted", "taskFailed", "taskStalled", "sessionLaunched", "checkpointCreated", "lastActivityAt", "recentFailures"];
3356
+ const keys = ["meshId", "totalEntries", "taskDispatched", "taskCompleted", "taskFailed", "taskBlocked", "taskStalled", "sessionLaunched", "checkpointCreated", "lastActivityAt", "recentFailures"];
3348
3357
  if (!isRecord(value) || !hasOnlyKeys2(value, keys)) return false;
3349
3358
  if (!isEvidenceIdentifier(value.meshId)) return false;
3350
3359
  for (const k of ["totalEntries", "taskDispatched", "taskCompleted", "taskFailed", "taskStalled", "sessionLaunched", "checkpointCreated", "recentFailures"]) {
3351
3360
  if (!isNonNegativeInt(value[k])) return false;
3352
3361
  }
3362
+ if (value.taskBlocked !== void 0 && !isNonNegativeInt(value.taskBlocked)) return false;
3353
3363
  if (value.lastActivityAt !== null && typeof value.lastActivityAt !== "string") return false;
3354
3364
  return true;
3355
3365
  }
@@ -3393,9 +3403,10 @@ function isQueueDependencyHeadWire(value) {
3393
3403
  return isRecord(value) && hasOnlyKeys2(value, ["id", "status", "cancelReason"]) && typeof value.id === "string" && typeof value.status === "string" && (value.cancelReason === void 0 || typeof value.cancelReason === "string");
3394
3404
  }
3395
3405
  function isQueueQueryResponse(value) {
3396
- if (!isRecord(value) || !hasOnlyKeys2(value, ["entries", "counts", "oldHistoricalCount", "dependencyHeads"])) return false;
3406
+ if (!isRecord(value) || !hasOnlyKeys2(value, ["entries", "counts", "oldHistoricalCount", "legacyReportedBlockedCount", "dependencyHeads"])) return false;
3397
3407
  if (!Array.isArray(value.entries) || !value.entries.every(isQueueEntryWire)) return false;
3398
3408
  if (value.counts !== void 0 && (!isRecord(value.counts) || !Object.values(value.counts).every(isNonNegativeInt))) return false;
3409
+ if (value.legacyReportedBlockedCount !== void 0 && !isNonNegativeInt(value.legacyReportedBlockedCount)) return false;
3399
3410
  if (value.oldHistoricalCount !== void 0 && !isNonNegativeInt(value.oldHistoricalCount)) return false;
3400
3411
  if (value.dependencyHeads !== void 0 && (!Array.isArray(value.dependencyHeads) || !value.dependencyHeads.every(isQueueDependencyHeadWire))) return false;
3401
3412
  return true;
@@ -3517,6 +3528,17 @@ function isRecoveryContextQueryResponse(value) {
3517
3528
  function decodeRecoveryContextQueryResponse(value) {
3518
3529
  return isRecoveryContextQueryResponse(value) ? value : null;
3519
3530
  }
3531
+ function decodeQueueReviseRequest(value) {
3532
+ if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "taskId", "expectedRevision", "patch"]) || value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId) || !isEvidenceIdentifier(value.taskId) || !Number.isSafeInteger(value.expectedRevision) || value.expectedRevision < 0 || !isRecord(value.patch) || !Object.keys(value.patch).length || !hasOnlyKeys2(value.patch, ["message", "ownedPaths", "phase", "dependsOn", "routingPreferences", "review"])) return null;
3533
+ const p = value.patch;
3534
+ if (p.message !== void 0 && (typeof p.message !== "string" || !p.message.trim())) return null;
3535
+ if (p.phase !== void 0 && p.phase !== "source" && p.phase !== "integration") return null;
3536
+ for (const key of ["ownedPaths", "dependsOn"]) {
3537
+ if (p[key] !== void 0 && (!Array.isArray(p[key]) || !p[key].every((x) => typeof x === "string" && !!x.trim()))) return null;
3538
+ }
3539
+ return value;
3540
+ }
3541
+ var decodeQueueReviseResponse = decodeQueueRequeueResponse;
3520
3542
 
3521
3543
  // src/turn-ipc-stats.ts
3522
3544
  function isTaskStatsQueryRequest(value) {
@@ -3615,6 +3637,7 @@ var TURN_IPC_COMMANDS = [
3615
3637
  "queue_enqueue_batch",
3616
3638
  "queue_cancel",
3617
3639
  "queue_requeue",
3640
+ "queue_revise",
3618
3641
  "direct_dispatch_record",
3619
3642
  "active_work_query",
3620
3643
  "recovery_context_query",
@@ -4304,6 +4327,8 @@ function isProviderQuestionBinding(value) {
4304
4327
  decodeQueueQueryResponse,
4305
4328
  decodeQueueRequeueRequest,
4306
4329
  decodeQueueRequeueResponse,
4330
+ decodeQueueReviseRequest,
4331
+ decodeQueueReviseResponse,
4307
4332
  decodeRecordLocalRequest,
4308
4333
  decodeRecordLocalResponse,
4309
4334
  decodeRecoveryContextQueryRequest,