@punica/editor 1.50.1 → 1.51.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punica/editor",
3
- "version": "1.50.1",
3
+ "version": "1.51.0",
4
4
  "description": "Punica Editor",
5
5
  "private": false,
6
6
  "type": "module",
@@ -109,6 +109,25 @@ declare module 'punica' {
109
109
  nodeId: CapabilityId,
110
110
  options?: { manifest?: unknown }
111
111
  ): Promise<TestReport>;
112
+ /**
113
+ * Run the tests, grade them, and keep the record beside the manifest
114
+ * (`<stem>.verification.json`) when every case that ran passed and at
115
+ * least one ran. A red run removes an earlier record of the file. The
116
+ * marketplace refuses a publish without this record (substrate 1.51.0).
117
+ */
118
+ verify(
119
+ id: CapabilityId,
120
+ options?: { manifest?: unknown; producedBy?: string }
121
+ ): Promise<{
122
+ color: 'green' | 'yellow' | 'red';
123
+ verified: boolean;
124
+ reason: string;
125
+ ran: number;
126
+ passed: number;
127
+ skipped: number;
128
+ record: Record<string, unknown> | null;
129
+ path: string | null;
130
+ }>;
112
131
  }
113
132
 
114
133
  export interface FlowApi {
@@ -308,7 +308,17 @@ declare module 'punica' {
308
308
  */
309
309
  export interface ForEachPrimitiveData {
310
310
  collection: PrimitiveValueRef;
311
- bodyFlowId: CapabilityId;
311
+ /** Decision-only body reference (no dispatch). One of this or `bodyCapabilityId`. */
312
+ bodyFlowId?: CapabilityId;
313
+ /**
314
+ * A capability called once per item through the gateway (substrate
315
+ * 1.51.0) — an IvyNode, an IvyAgent or any extension capability. Its
316
+ * input is `bodyInput` with the item bound at `itemBinding`; the node's
317
+ * output is `{ results, count, truncated }`.
318
+ */
319
+ bodyCapabilityId?: CapabilityId;
320
+ /** Fixed input fields for every call of `bodyCapabilityId`. */
321
+ bodyInput?: JSONObject;
312
322
  maxIterations: number;
313
323
  itemBinding?: string;
314
324
  }
@@ -251,6 +251,13 @@ declare module 'punica' {
251
251
  * and packaged builds; omitted when the host cannot resolve it.
252
252
  */
253
253
  bridgePath?: string;
254
+ /**
255
+ * The bearer token the listener requires on every JSON-RPC and SSE
256
+ * request (`Authorization: Bearer <token>`; the stdio bridge takes
257
+ * `--token`). Minted once per installation. Omitted by a host whose
258
+ * listener takes no token.
259
+ */
260
+ token?: string;
254
261
  }
255
262
 
256
263
  /** An inbound MCP JSON-RPC request forwarded from the transport. */
@@ -263,6 +263,13 @@ declare module 'punica' {
263
263
  sideEffects?: SideEffectCheck;
264
264
  }
265
265
 
266
+ /**
267
+ * How a test case builds one non-JSON input (see `TestCase.fixture`).
268
+ */
269
+ export interface TestFixture {
270
+ python: string;
271
+ }
272
+
266
273
  /**
267
274
  * Test Case
268
275
  */
@@ -279,6 +286,14 @@ declare module 'punica' {
279
286
  * Test input data
280
287
  */
281
288
  input: JSONValue | JSONObject | null;
289
+ /**
290
+ * Values the case builds in the node's own session before it runs, one
291
+ * per input field, for inputs that are not JSON — a client, a model, a
292
+ * buffer an upstream node would hand over as a handle. `python` is an
293
+ * expression, or a block that assigns `value`. A fixture key replaces
294
+ * the same key in `input`.
295
+ */
296
+ fixture?: Record<string, TestFixture>;
282
297
  /**
283
298
  * Test assertions
284
299
  */