@schoolai/shipyard-mcp 0.1.3-next.451 → 0.1.3-next.453

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.
@@ -28479,7 +28479,7 @@ init_cjs_shims();
28479
28479
  // ../../packages/schema/dist/index.mjs
28480
28480
  init_cjs_shims();
28481
28481
 
28482
- // ../../packages/schema/dist/yjs-helpers-xzZyVQl7.mjs
28482
+ // ../../packages/schema/dist/yjs-helpers-CkZ1Z-ZW.mjs
28483
28483
  init_cjs_shims();
28484
28484
 
28485
28485
  // ../../packages/schema/dist/plan.mjs
@@ -42650,7 +42650,7 @@ var PRReviewCommentSchema = external_exports.object({
42650
42650
  resolved: external_exports.boolean().optional()
42651
42651
  });
42652
42652
 
42653
- // ../../packages/schema/dist/yjs-helpers-xzZyVQl7.mjs
42653
+ // ../../packages/schema/dist/yjs-helpers-CkZ1Z-ZW.mjs
42654
42654
  function assertNever2(value) {
42655
42655
  throw new Error(`Unhandled discriminated union member: ${JSON.stringify(value)}`);
42656
42656
  }
@@ -3,7 +3,7 @@ import {
3
3
  YDOC_KEYS,
4
4
  createInputRequest,
5
5
  logPlanEvent
6
- } from "./chunk-LTC26IRQ.js";
6
+ } from "./chunk-UN6RJ77A.js";
7
7
  import {
8
8
  logger
9
9
  } from "./chunk-GSGLHRWX.js";
@@ -156,10 +156,9 @@ var InputRequestManager = class {
156
156
  const handleTimeout = () => {
157
157
  if (resolved) return;
158
158
  logger.warn({ requestId, timeout: effectiveTimeout }, "Input request timed out");
159
- markRequestAsCancelled();
160
- if (resolved) return;
161
159
  resolved = true;
162
160
  cleanup();
161
+ markRequestAsCancelled();
163
162
  const timeStr = formatDuration(effectiveTimeout);
164
163
  resolve({
165
164
  success: false,
@@ -169,7 +168,6 @@ var InputRequestManager = class {
169
168
  };
170
169
  const markRequestAsCancelled = () => {
171
170
  ydoc.transact(() => {
172
- if (resolved) return;
173
171
  const currentRequest = findRequest();
174
172
  if (!currentRequest || currentRequest.status !== "pending") {
175
173
  return;
@@ -863,7 +863,7 @@ function createHandedOffConversationVersion(params) {
863
863
  return ConversationVersionSchema.parse(version);
864
864
  }
865
865
 
866
- // ../../packages/schema/dist/yjs-helpers-xzZyVQl7.mjs
866
+ // ../../packages/schema/dist/yjs-helpers-CkZ1Z-ZW.mjs
867
867
  import { z as z2 } from "zod";
868
868
  import { nanoid as nanoid2 } from "nanoid";
869
869
  import * as Y from "yjs";
@@ -959,6 +959,7 @@ var CreateSubscriptionRequestSchema = z2.object({
959
959
  threshold: z2.number().positive().optional()
960
960
  });
961
961
  var CreateSubscriptionResponseSchema = z2.object({ clientId: z2.string() });
962
+ var DEFAULT_INPUT_REQUEST_TIMEOUT_SECONDS = 300;
962
963
  var InputRequestTypeValues = [
963
964
  "text",
964
965
  "multiline",
@@ -2770,6 +2771,7 @@ export {
2770
2771
  UnregisterServerResponseSchema,
2771
2772
  CreateSubscriptionRequestSchema,
2772
2773
  CreateSubscriptionResponseSchema,
2774
+ DEFAULT_INPUT_REQUEST_TIMEOUT_SECONDS,
2773
2775
  InputRequestTypeValues,
2774
2776
  InputRequestStatusValues,
2775
2777
  InputRequestSchema,
@@ -23,6 +23,7 @@ import {
23
23
  CreateSubscriptionRequestSchema,
24
24
  CreateSubscriptionResponseSchema,
25
25
  CursorOriginMetadataSchema,
26
+ DEFAULT_INPUT_REQUEST_TIMEOUT_SECONDS,
26
27
  DeleteSubscriptionResponseSchema,
27
28
  DeliverableSchema,
28
29
  DevinOriginMetadataSchema,
@@ -201,7 +202,7 @@ import {
201
202
  updateLinkedPRStatus,
202
203
  updatePlanIndexViewedBy,
203
204
  validateA2AMessages
204
- } from "./chunk-LTC26IRQ.js";
205
+ } from "./chunk-UN6RJ77A.js";
205
206
  import "./chunk-JSBRDJBE.js";
206
207
  export {
207
208
  A2ADataPartSchema,
@@ -228,6 +229,7 @@ export {
228
229
  CreateSubscriptionRequestSchema,
229
230
  CreateSubscriptionResponseSchema,
230
231
  CursorOriginMetadataSchema,
232
+ DEFAULT_INPUT_REQUEST_TIMEOUT_SECONDS,
231
233
  DeleteSubscriptionResponseSchema,
232
234
  DeliverableSchema,
233
235
  DevinOriginMetadataSchema,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-EBNL5ZX7.js";
19
19
  import {
20
20
  InputRequestManager
21
- } from "./chunk-N44DCU4J.js";
21
+ } from "./chunk-LD5NBKJ5.js";
22
22
  import {
23
23
  ArtifactSchema,
24
24
  DeliverableSchema,
@@ -67,7 +67,7 @@ import {
67
67
  setPlanMetadata,
68
68
  touchPlanIndexEntry,
69
69
  transitionPlanStatus
70
- } from "./chunk-LTC26IRQ.js";
70
+ } from "./chunk-UN6RJ77A.js";
71
71
  import {
72
72
  loadEnv,
73
73
  logger
@@ -1027,16 +1027,14 @@ async function waitForApprovalHandler(planId, _reviewRequestIdParam, ctx) {
1027
1027
  if (!reviewedBy) {
1028
1028
  throw new Error(`Invalid session state transition: missing reviewedBy for changes_requested`);
1029
1029
  }
1030
- if (!syncedFields) {
1031
- throw new Error(
1032
- `Invalid session state transition: changes_requested requires synced fields (contentHash, sessionToken)`
1033
- );
1034
- }
1035
1030
  const deliverables = extraData.deliverables || (isSessionStateApproved(session) || isSessionStateReviewed(session) || isSessionStateApprovedAwaitingToken(session) ? session.deliverables : []);
1031
+ const webUrl = webConfig.SHIPYARD_WEB_URL;
1036
1032
  setSessionState(sessionId, {
1037
1033
  lifecycle: "reviewed",
1038
1034
  ...baseState,
1039
- ...syncedFields,
1035
+ contentHash: syncedFields?.contentHash ?? "",
1036
+ sessionToken: syncedFields?.sessionToken ?? "",
1037
+ url: syncedFields?.url ?? `${webUrl}/plan/${baseState.planId}`,
1040
1038
  deliverables,
1041
1039
  reviewComment: reviewComment || "",
1042
1040
  reviewedBy,
@@ -5064,7 +5062,7 @@ async function setupReviewNotification(planId, pollIntervalSeconds) {
5064
5062
  return { script, fullResponse: text };
5065
5063
  }
5066
5064
  async function requestUserInput(opts) {
5067
- const { InputRequestManager: InputRequestManager2 } = await import("./input-request-manager-MVKPYLFW.js");
5065
+ const { InputRequestManager: InputRequestManager2 } = await import("./input-request-manager-RO5G36ST.js");
5068
5066
  const ydoc = await getOrCreateDoc3(PLAN_INDEX_DOC_NAME);
5069
5067
  const manager = new InputRequestManager2();
5070
5068
  const params = opts.type === "choice" ? {
@@ -5108,7 +5106,7 @@ async function requestUserInput(opts) {
5108
5106
  };
5109
5107
  }
5110
5108
  async function postActivityUpdate(opts) {
5111
- const { logPlanEvent: logPlanEvent2 } = await import("./dist-LQBXUHLR.js");
5109
+ const { logPlanEvent: logPlanEvent2 } = await import("./dist-4IAHBBMC.js");
5112
5110
  const { getGitHubUsername: getGitHubUsername2 } = await import("./server-identity-KUXYHULN.js");
5113
5111
  const { nanoid: nanoid7 } = await import("nanoid");
5114
5112
  const doc = await getOrCreateDoc3(opts.planId);
@@ -5131,7 +5129,7 @@ async function postActivityUpdate(opts) {
5131
5129
  return { success: true, eventId, requestId };
5132
5130
  }
5133
5131
  async function resolveActivityRequest(opts) {
5134
- const { logPlanEvent: logPlanEvent2, getPlanEvents } = await import("./dist-LQBXUHLR.js");
5132
+ const { logPlanEvent: logPlanEvent2, getPlanEvents } = await import("./dist-4IAHBBMC.js");
5135
5133
  const { getGitHubUsername: getGitHubUsername2 } = await import("./server-identity-KUXYHULN.js");
5136
5134
  const doc = await getOrCreateDoc3(opts.planId);
5137
5135
  const actorName = await getGitHubUsername2();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  InputRequestManager
3
- } from "./chunk-N44DCU4J.js";
4
- import "./chunk-LTC26IRQ.js";
3
+ } from "./chunk-LD5NBKJ5.js";
4
+ import "./chunk-UN6RJ77A.js";
5
5
  import "./chunk-GSGLHRWX.js";
6
6
  import "./chunk-JSBRDJBE.js";
7
7
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schoolai/shipyard-mcp",
3
- "version": "0.1.3-next.451",
3
+ "version": "0.1.3-next.453",
4
4
  "description": "Shipyard MCP server and CLI tools for distributed planning with CRDTs",
5
5
  "type": "module",
6
6
  "bin": {