@schoolai/shipyard-mcp 0.2.2 → 0.3.0

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.
@@ -2,8 +2,9 @@ import {
2
2
  InputRequestSchema,
3
3
  YDOC_KEYS,
4
4
  createInputRequest,
5
+ createMultiQuestionInputRequest,
5
6
  logPlanEvent
6
- } from "./chunk-76JWRTPI.js";
7
+ } from "./chunk-I7UCM5RO.js";
7
8
  import {
8
9
  logger
9
10
  } from "./chunk-GSGLHRWX.js";
@@ -36,11 +37,21 @@ var InputRequestManager = class {
36
37
  ydoc.transact(() => {
37
38
  const requestsArray = ydoc.getArray(YDOC_KEYS.INPUT_REQUESTS);
38
39
  requestsArray.push([request]);
39
- logPlanEvent(ydoc, "input_request_created", "Agent", {
40
- requestId: request.id,
41
- requestType: request.type,
42
- requestMessage: request.message
43
- });
40
+ logPlanEvent(
41
+ ydoc,
42
+ "input_request_created",
43
+ "Agent",
44
+ {
45
+ requestId: request.id,
46
+ requestType: request.type,
47
+ requestMessage: request.message,
48
+ isBlocker: request.isBlocker
49
+ },
50
+ {
51
+ inboxWorthy: true,
52
+ inboxFor: "owner"
53
+ }
54
+ );
44
55
  });
45
56
  logger.info(
46
57
  { requestId: request.id, type: request.type, timeout: request.timeout },
@@ -48,6 +59,41 @@ var InputRequestManager = class {
48
59
  );
49
60
  return request.id;
50
61
  }
62
+ /**
63
+ * Create a new multi-question input request in the Y.Doc.
64
+ * Request is added to the INPUT_REQUESTS array and becomes visible in browser UI.
65
+ *
66
+ * @param ydoc - The Y.Doc to add the request to
67
+ * @param params - Request parameters (questions array, timeout, planId)
68
+ * @returns The generated request ID
69
+ */
70
+ createMultiQuestionRequest(ydoc, params) {
71
+ const request = createMultiQuestionInputRequest(params);
72
+ ydoc.transact(() => {
73
+ const requestsArray = ydoc.getArray(YDOC_KEYS.INPUT_REQUESTS);
74
+ requestsArray.push([request]);
75
+ logPlanEvent(
76
+ ydoc,
77
+ "input_request_created",
78
+ "Agent",
79
+ {
80
+ requestId: request.id,
81
+ requestType: "multi",
82
+ questionCount: request.questions.length,
83
+ isBlocker: request.isBlocker
84
+ },
85
+ {
86
+ inboxWorthy: true,
87
+ inboxFor: "owner"
88
+ }
89
+ );
90
+ });
91
+ logger.info(
92
+ { requestId: request.id, questionCount: request.questions.length, timeout: request.timeout },
93
+ "Created multi-question input request in Y.Doc"
94
+ );
95
+ return request.id;
96
+ }
51
97
  /**
52
98
  * Wait for a user to respond to an input request.
53
99
  * Blocks until the request is answered, cancelled, or times out.
@@ -115,9 +161,10 @@ var InputRequestManager = class {
115
161
  logger.info({ requestId, answeredBy: request2.answeredBy }, "Input request answered");
116
162
  resolved = true;
117
163
  cleanup();
164
+ const responseValue = request2.type === "multi" ? request2.responses : request2.response;
118
165
  resolve({
119
166
  success: true,
120
- response: request2.response,
167
+ response: responseValue,
121
168
  status: "answered",
122
169
  answeredBy: request2.answeredBy ?? "unknown",
123
170
  answeredAt: request2.answeredAt ?? Date.now()