@schoolai/shipyard-mcp 0.1.3-next.460 → 0.1.3-next.464

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.
@@ -28494,7 +28494,7 @@ init_cjs_shims();
28494
28494
  // ../../packages/schema/dist/index.mjs
28495
28495
  init_cjs_shims();
28496
28496
 
28497
- // ../../packages/schema/dist/yjs-helpers-B435ND5d.mjs
28497
+ // ../../packages/schema/dist/yjs-helpers-CFQmkNYl.mjs
28498
28498
  init_cjs_shims();
28499
28499
 
28500
28500
  // ../../packages/schema/dist/plan.mjs
@@ -42665,7 +42665,7 @@ var PRReviewCommentSchema = external_exports.object({
42665
42665
  resolved: external_exports.boolean().optional()
42666
42666
  });
42667
42667
 
42668
- // ../../packages/schema/dist/yjs-helpers-B435ND5d.mjs
42668
+ // ../../packages/schema/dist/yjs-helpers-CFQmkNYl.mjs
42669
42669
  function assertNever2(value) {
42670
42670
  throw new Error(`Unhandled discriminated union member: ${JSON.stringify(value)}`);
42671
42671
  }
@@ -42770,7 +42770,7 @@ var InputRequestBaseSchema = external_exports.object({
42770
42770
  message: external_exports.string().min(1, "Message cannot be empty"),
42771
42771
  status: external_exports.enum(InputRequestStatusValues),
42772
42772
  defaultValue: external_exports.string().optional(),
42773
- timeout: external_exports.number().int().min(10, "Timeout must be at least 10 seconds").max(900, "Timeout cannot exceed 15 minutes").optional(),
42773
+ timeout: external_exports.number().int().min(10, "Timeout must be at least 10 seconds").max(14400, "Timeout cannot exceed 4 hours").optional(),
42774
42774
  planId: external_exports.string().optional(),
42775
42775
  response: external_exports.unknown().optional(),
42776
42776
  answeredAt: external_exports.number().optional(),
@@ -863,7 +863,7 @@ function createHandedOffConversationVersion(params) {
863
863
  return ConversationVersionSchema.parse(version);
864
864
  }
865
865
 
866
- // ../../packages/schema/dist/yjs-helpers-B435ND5d.mjs
866
+ // ../../packages/schema/dist/yjs-helpers-CFQmkNYl.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,7 +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
+ var DEFAULT_INPUT_REQUEST_TIMEOUT_SECONDS = 1800;
963
963
  var InputRequestTypeValues = [
964
964
  "text",
965
965
  "multiline",
@@ -978,7 +978,7 @@ var InputRequestBaseSchema = z2.object({
978
978
  message: z2.string().min(1, "Message cannot be empty"),
979
979
  status: z2.enum(InputRequestStatusValues),
980
980
  defaultValue: z2.string().optional(),
981
- timeout: z2.number().int().min(10, "Timeout must be at least 10 seconds").max(900, "Timeout cannot exceed 15 minutes").optional(),
981
+ timeout: z2.number().int().min(10, "Timeout must be at least 10 seconds").max(14400, "Timeout cannot exceed 4 hours").optional(),
982
982
  planId: z2.string().optional(),
983
983
  response: z2.unknown().optional(),
984
984
  answeredAt: z2.number().optional(),
@@ -3,7 +3,7 @@ import {
3
3
  YDOC_KEYS,
4
4
  createInputRequest,
5
5
  logPlanEvent
6
- } from "./chunk-4BEPSPPL.js";
6
+ } from "./chunk-75NZRAN5.js";
7
7
  import {
8
8
  logger
9
9
  } from "./chunk-GSGLHRWX.js";
@@ -203,7 +203,7 @@ import {
203
203
  updateLinkedPRStatus,
204
204
  updatePlanIndexViewedBy,
205
205
  validateA2AMessages
206
- } from "./chunk-4BEPSPPL.js";
206
+ } from "./chunk-75NZRAN5.js";
207
207
  import "./chunk-JSBRDJBE.js";
208
208
  export {
209
209
  A2ADataPartSchema,
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-EBNL5ZX7.js";
20
20
  import {
21
21
  InputRequestManager
22
- } from "./chunk-FTOVV4YW.js";
22
+ } from "./chunk-MZTJGBLT.js";
23
23
  import {
24
24
  ArtifactSchema,
25
25
  DeliverableSchema,
@@ -68,7 +68,7 @@ import {
68
68
  setPlanMetadata,
69
69
  touchPlanIndexEntry,
70
70
  transitionPlanStatus
71
- } from "./chunk-4BEPSPPL.js";
71
+ } from "./chunk-75NZRAN5.js";
72
72
  import {
73
73
  loadEnv,
74
74
  logger
@@ -2477,7 +2477,7 @@ import { z as z12 } from "zod";
2477
2477
 
2478
2478
  // src/tools/add-artifact.ts
2479
2479
  import { execSync } from "child_process";
2480
- import { readFile as readFile3 } from "fs/promises";
2480
+ import { readFile as readFile3, writeFile as writeFile4 } from "fs/promises";
2481
2481
  import { ServerBlockNoteEditor as ServerBlockNoteEditor2 } from "@blocknote/server-util";
2482
2482
  import { nanoid as nanoid4 } from "nanoid";
2483
2483
  import { z as z3 } from "zod";
@@ -2909,6 +2909,14 @@ Linked to deliverable: ${input.deliverableId}` : "";
2909
2909
  logger.warn({ planId }, "Cannot update plan index: missing ownerId");
2910
2910
  }
2911
2911
  logger.info({ planId, snapshotUrl }, "Task auto-completed");
2912
+ const { homedir: homedir5 } = await import("os");
2913
+ const { join: join6 } = await import("path");
2914
+ const { mkdir: mkdir3 } = await import("fs/promises");
2915
+ const snapshotsDir = join6(homedir5(), ".shipyard", "snapshots");
2916
+ await mkdir3(snapshotsDir, { recursive: true });
2917
+ const snapshotFile = join6(snapshotsDir, `${planId}.txt`);
2918
+ await writeFile4(snapshotFile, snapshotUrl, "utf-8");
2919
+ logger.info({ planId, snapshotFile }, "Snapshot URL written to file");
2912
2920
  let prText = "";
2913
2921
  if (linkedPR) {
2914
2922
  prText = `
@@ -2934,10 +2942,11 @@ URL: ${artifactUrl}${linkedText}
2934
2942
 
2935
2943
  \u{1F389} ALL DELIVERABLES COMPLETE! Task auto-completed.${prText}
2936
2944
 
2937
- Snapshot URL generated. Access via result.snapshotUrl to embed in PR.`
2945
+ Snapshot URL saved to: ${snapshotFile}
2946
+ (Note: Very long URL - recommend not reading directly. Use file path to attach to PR or access later.)`
2938
2947
  }
2939
2948
  ],
2940
- // Structured data for programmatic access (avoids token limit issues)
2949
+ // Keep structured data for execute_code wrapper
2941
2950
  snapshotUrl,
2942
2951
  allDeliverablesComplete: true
2943
2952
  };
@@ -4801,7 +4810,7 @@ Parameters:
4801
4810
  - options (string[], optional): For 'choice' type - available options (required for choice)
4802
4811
  - multiSelect (boolean, optional): For 'choice' type - allow selecting multiple options (uses checkboxes instead of radio buttons)
4803
4812
  - defaultValue (string, optional): Pre-filled value for text/multiline inputs
4804
- - timeout (number, optional): Timeout in seconds (default: 300, min: 10, max: 600)
4813
+ - timeout (number, optional): Timeout in seconds (default: 1800, min: 10, max: 14400)
4805
4814
  - planId (string, optional): Optional metadata to link request to plan (for activity log filtering)
4806
4815
 
4807
4816
  Returns:
@@ -5076,7 +5085,7 @@ async function setupReviewNotification(planId, pollIntervalSeconds) {
5076
5085
  return { script, fullResponse: text };
5077
5086
  }
5078
5087
  async function requestUserInput(opts) {
5079
- const { InputRequestManager: InputRequestManager2 } = await import("./input-request-manager-YMNFW4JM.js");
5088
+ const { InputRequestManager: InputRequestManager2 } = await import("./input-request-manager-43QSOJS3.js");
5080
5089
  const ydoc = await getOrCreateDoc3(PLAN_INDEX_DOC_NAME);
5081
5090
  const manager = new InputRequestManager2();
5082
5091
  const params = opts.type === "choice" ? {
@@ -5120,7 +5129,7 @@ async function requestUserInput(opts) {
5120
5129
  };
5121
5130
  }
5122
5131
  async function postActivityUpdate(opts) {
5123
- const { logPlanEvent: logPlanEvent2 } = await import("./dist-FZ4WTJ2H.js");
5132
+ const { logPlanEvent: logPlanEvent2 } = await import("./dist-HIDISXZO.js");
5124
5133
  const { getGitHubUsername: getGitHubUsername2 } = await import("./server-identity-6PHKR2FY.js");
5125
5134
  const { nanoid: nanoid7 } = await import("nanoid");
5126
5135
  const doc = await getOrCreateDoc3(opts.planId);
@@ -5143,7 +5152,7 @@ async function postActivityUpdate(opts) {
5143
5152
  return { success: true, eventId, requestId };
5144
5153
  }
5145
5154
  async function resolveActivityRequest(opts) {
5146
- const { logPlanEvent: logPlanEvent2, getPlanEvents } = await import("./dist-FZ4WTJ2H.js");
5155
+ const { logPlanEvent: logPlanEvent2, getPlanEvents } = await import("./dist-HIDISXZO.js");
5147
5156
  const { getGitHubUsername: getGitHubUsername2 } = await import("./server-identity-6PHKR2FY.js");
5148
5157
  const doc = await getOrCreateDoc3(opts.planId);
5149
5158
  const actorName = await getGitHubUsername2();
@@ -5278,7 +5287,7 @@ var RequestUserInputInput = z13.object({
5278
5287
  options: z13.array(z13.string()).optional().describe("For 'choice' type - available options (required for choice)"),
5279
5288
  multiSelect: z13.boolean().optional().describe("For 'choice' type - allow selecting multiple options"),
5280
5289
  defaultValue: z13.string().optional().describe("Pre-filled value for text/multiline inputs"),
5281
- timeout: z13.number().optional().describe("Timeout in seconds (default: 300, min: 10, max: 900)"),
5290
+ timeout: z13.number().optional().describe("Timeout in seconds (default: 1800, min: 10, max: 14400)"),
5282
5291
  planId: z13.string().optional().describe("Optional metadata to link request to plan (for activity log filtering)")
5283
5292
  });
5284
5293
  var requestUserInputTool = {
@@ -5335,7 +5344,7 @@ NOTE: This is also available as requestUserInput() inside execute_code for multi
5335
5344
  },
5336
5345
  timeout: {
5337
5346
  type: "number",
5338
- description: "Timeout in seconds (default: 300, min: 10, max: 900)"
5347
+ description: "Timeout in seconds (default: 1800, min: 10, max: 14400)"
5339
5348
  },
5340
5349
  planId: {
5341
5350
  type: "string",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  InputRequestManager
3
- } from "./chunk-FTOVV4YW.js";
4
- import "./chunk-4BEPSPPL.js";
3
+ } from "./chunk-MZTJGBLT.js";
4
+ import "./chunk-75NZRAN5.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.460",
3
+ "version": "0.1.3-next.464",
4
4
  "description": "Shipyard MCP server and CLI tools for distributed planning with CRDTs",
5
5
  "type": "module",
6
6
  "bin": {