pi-outpost 0.14.0 → 0.15.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.
@@ -91819,7 +91819,7 @@ var init_pdf_worker = __esm({
91819
91819
  pdfManager
91820
91820
  } = annotationGlobals;
91821
91821
  const id = ref instanceof Ref5 ? ref.toString() : `annot_${idFactory.createObjId()}`;
91822
- const parameters8 = {
91822
+ const parameters7 = {
91823
91823
  xref,
91824
91824
  ref,
91825
91825
  dict,
@@ -91835,9 +91835,9 @@ var init_pdf_worker = __esm({
91835
91835
  };
91836
91836
  switch (subtype) {
91837
91837
  case "Link":
91838
- return new LinkAnnotation(parameters8);
91838
+ return new LinkAnnotation(parameters7);
91839
91839
  case "Text":
91840
- return new TextAnnotation(parameters8);
91840
+ return new TextAnnotation(parameters7);
91841
91841
  case "Widget":
91842
91842
  let fieldType = getInheritableProperty({
91843
91843
  dict,
@@ -91846,52 +91846,52 @@ var init_pdf_worker = __esm({
91846
91846
  fieldType = fieldType instanceof Name ? fieldType.name : null;
91847
91847
  switch (fieldType) {
91848
91848
  case "Tx":
91849
- return new TextWidgetAnnotation(parameters8);
91849
+ return new TextWidgetAnnotation(parameters7);
91850
91850
  case "Btn":
91851
- return new ButtonWidgetAnnotation(parameters8);
91851
+ return new ButtonWidgetAnnotation(parameters7);
91852
91852
  case "Ch":
91853
- return new ChoiceWidgetAnnotation(parameters8);
91853
+ return new ChoiceWidgetAnnotation(parameters7);
91854
91854
  case "Sig":
91855
- return new SignatureWidgetAnnotation(parameters8);
91855
+ return new SignatureWidgetAnnotation(parameters7);
91856
91856
  }
91857
91857
  warn(`Unimplemented widget field type "${fieldType}", falling back to base field type.`);
91858
- return new WidgetAnnotation(parameters8);
91858
+ return new WidgetAnnotation(parameters7);
91859
91859
  case "Popup":
91860
- return new PopupAnnotation(parameters8);
91860
+ return new PopupAnnotation(parameters7);
91861
91861
  case "FreeText":
91862
- return new FreeTextAnnotation(parameters8);
91862
+ return new FreeTextAnnotation(parameters7);
91863
91863
  case "Line":
91864
- return new LineAnnotation(parameters8);
91864
+ return new LineAnnotation(parameters7);
91865
91865
  case "Square":
91866
- return new SquareAnnotation(parameters8);
91866
+ return new SquareAnnotation(parameters7);
91867
91867
  case "Circle":
91868
- return new CircleAnnotation(parameters8);
91868
+ return new CircleAnnotation(parameters7);
91869
91869
  case "PolyLine":
91870
- return new PolylineAnnotation(parameters8);
91870
+ return new PolylineAnnotation(parameters7);
91871
91871
  case "Polygon":
91872
- return new PolygonAnnotation(parameters8);
91872
+ return new PolygonAnnotation(parameters7);
91873
91873
  case "Caret":
91874
- return new CaretAnnotation(parameters8);
91874
+ return new CaretAnnotation(parameters7);
91875
91875
  case "Ink":
91876
- return new InkAnnotation(parameters8);
91876
+ return new InkAnnotation(parameters7);
91877
91877
  case "Highlight":
91878
- return new HighlightAnnotation(parameters8);
91878
+ return new HighlightAnnotation(parameters7);
91879
91879
  case "Underline":
91880
- return new UnderlineAnnotation(parameters8);
91880
+ return new UnderlineAnnotation(parameters7);
91881
91881
  case "Squiggly":
91882
- return new SquigglyAnnotation(parameters8);
91882
+ return new SquigglyAnnotation(parameters7);
91883
91883
  case "StrikeOut":
91884
- return new StrikeOutAnnotation(parameters8);
91884
+ return new StrikeOutAnnotation(parameters7);
91885
91885
  case "Stamp":
91886
- return new StampAnnotation(parameters8);
91886
+ return new StampAnnotation(parameters7);
91887
91887
  case "FileAttachment":
91888
- return new FileAttachmentAnnotation(parameters8);
91888
+ return new FileAttachmentAnnotation(parameters7);
91889
91889
  case "RichMedia":
91890
- return new RichMediaAnnotation(parameters8);
91890
+ return new RichMediaAnnotation(parameters7);
91891
91891
  case "Screen":
91892
- return new ScreenAnnotation(parameters8);
91892
+ return new ScreenAnnotation(parameters7);
91893
91893
  case "Sound":
91894
- return new SoundAnnotation(parameters8);
91894
+ return new SoundAnnotation(parameters7);
91895
91895
  default:
91896
91896
  if (!collectFields) {
91897
91897
  if (!subtype) {
@@ -91900,7 +91900,7 @@ var init_pdf_worker = __esm({
91900
91900
  warn(`Unimplemented annotation type "${subtype}", falling back to base annotation.`);
91901
91901
  }
91902
91902
  }
91903
- return new Annotation(parameters8);
91903
+ return new Annotation(parameters7);
91904
91904
  }
91905
91905
  }
91906
91906
  static async _getPageIndex(xref, ref, pdfManager) {
@@ -109423,11 +109423,11 @@ var init_pdf = __esm({
109423
109423
  }
109424
109424
  return this._allowedHtmlElements.has(name) ? document.createElement(name) : null;
109425
109425
  }
109426
- static render(parameters8) {
109427
- const storage = parameters8.annotationStorage;
109428
- const linkService = parameters8.linkService;
109429
- const root = parameters8.xfaHtml;
109430
- const intent = parameters8.intent || "display";
109426
+ static render(parameters7) {
109427
+ const storage = parameters7.annotationStorage;
109428
+ const linkService = parameters7.linkService;
109429
+ const root = parameters7.xfaHtml;
109430
+ const intent = parameters7.intent || "display";
109431
109431
  const rootHtml = this.#createElement(root.name, root.attributes?.xmlns, intent) ?? document.createElement("div");
109432
109432
  if (root.attributes) {
109433
109433
  this.setAttributes({
@@ -109438,10 +109438,10 @@ var init_pdf = __esm({
109438
109438
  });
109439
109439
  }
109440
109440
  const isNotForRichText = intent !== "richText";
109441
- const rootDiv = parameters8.div;
109441
+ const rootDiv = parameters7.div;
109442
109442
  rootDiv.append(rootHtml);
109443
- if (parameters8.viewport) {
109444
- const transform = `matrix(${parameters8.viewport.transform.join(",")})`;
109443
+ if (parameters7.viewport) {
109444
+ const transform = `matrix(${parameters7.viewport.transform.join(",")})`;
109445
109445
  rootDiv.style.transform = transform;
109446
109446
  }
109447
109447
  if (isNotForRichText) {
@@ -109511,10 +109511,10 @@ var init_pdf = __esm({
109511
109511
  textDivs
109512
109512
  };
109513
109513
  }
109514
- static update(parameters8) {
109515
- const transform = `matrix(${parameters8.viewport.transform.join(",")})`;
109516
- parameters8.div.style.transform = transform;
109517
- parameters8.div.hidden = false;
109514
+ static update(parameters7) {
109515
+ const transform = `matrix(${parameters7.viewport.transform.join(",")})`;
109516
+ parameters7.div.style.transform = transform;
109517
+ parameters7.div.hidden = false;
109518
109518
  }
109519
109519
  static getPageViewport(xfaPage, {
109520
109520
  scale = 1,
@@ -112916,21 +112916,21 @@ var init_pdf = __esm({
112916
112916
  args: [0, big]
112917
112917
  }], [["Escape"], _AnnotationEditor.prototype._stopResizingWithKeyboard]]));
112918
112918
  }
112919
- constructor(parameters8) {
112920
- this.parent = parameters8.parent;
112921
- this.id = parameters8.id;
112919
+ constructor(parameters7) {
112920
+ this.parent = parameters7.parent;
112921
+ this.id = parameters7.id;
112922
112922
  this.width = this.height = null;
112923
- this.pageIndex = parameters8.parent.pageIndex;
112924
- this.name = parameters8.name;
112923
+ this.pageIndex = parameters7.parent.pageIndex;
112924
+ this.name = parameters7.name;
112925
112925
  this.div = null;
112926
- this._uiManager = parameters8.uiManager;
112926
+ this._uiManager = parameters7.uiManager;
112927
112927
  this.annotationElementId = null;
112928
112928
  this._willKeepAspectRatio = false;
112929
- this._initialOptions.isCentered = parameters8.isCentered;
112929
+ this._initialOptions.isCentered = parameters7.isCentered;
112930
112930
  this._structTreeParentId = null;
112931
- this.annotationElementId = parameters8.annotationElementId || null;
112932
- this.creationDate = parameters8.creationDate || /* @__PURE__ */ new Date();
112933
- this.modificationDate = parameters8.modificationDate || null;
112931
+ this.annotationElementId = parameters7.annotationElementId || null;
112932
+ this.creationDate = parameters7.creationDate || /* @__PURE__ */ new Date();
112933
+ this.modificationDate = parameters7.modificationDate || null;
112934
112934
  this.canAddComment = true;
112935
112935
  const {
112936
112936
  rotation,
@@ -112946,8 +112946,8 @@ var init_pdf = __esm({
112946
112946
  this.pageDimensions = [pageWidth, pageHeight];
112947
112947
  this.pageTranslation = [pageX, pageY];
112948
112948
  const [width, height] = this.parentDimensions;
112949
- this.x = parameters8.x / width;
112950
- this.y = parameters8.y / height;
112949
+ this.x = parameters7.x / width;
112950
+ this.y = parameters7.y / height;
112951
112951
  this.isAttachedToDOM = false;
112952
112952
  this.deleted = false;
112953
112953
  }
@@ -124228,67 +124228,67 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
124228
124228
  GetElementsByNameSet = /* @__PURE__ */ new WeakSet();
124229
124229
  TIMEZONE_OFFSET = (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 * 1e3;
124230
124230
  AnnotationElementFactory = class {
124231
- static create(parameters8) {
124232
- const subtype = parameters8.data.annotationType;
124231
+ static create(parameters7) {
124232
+ const subtype = parameters7.data.annotationType;
124233
124233
  switch (subtype) {
124234
124234
  case AnnotationType2.LINK:
124235
- return new LinkAnnotationElement(parameters8);
124235
+ return new LinkAnnotationElement(parameters7);
124236
124236
  case AnnotationType2.TEXT:
124237
- return new TextAnnotationElement(parameters8);
124237
+ return new TextAnnotationElement(parameters7);
124238
124238
  case AnnotationType2.WIDGET:
124239
- const fieldType = parameters8.data.fieldType;
124239
+ const fieldType = parameters7.data.fieldType;
124240
124240
  switch (fieldType) {
124241
124241
  case "Tx":
124242
- return new TextWidgetAnnotationElement(parameters8);
124242
+ return new TextWidgetAnnotationElement(parameters7);
124243
124243
  case "Btn":
124244
- if (parameters8.data.radioButton) {
124245
- return new RadioButtonWidgetAnnotationElement(parameters8);
124246
- } else if (parameters8.data.checkBox) {
124247
- return new CheckboxWidgetAnnotationElement(parameters8);
124244
+ if (parameters7.data.radioButton) {
124245
+ return new RadioButtonWidgetAnnotationElement(parameters7);
124246
+ } else if (parameters7.data.checkBox) {
124247
+ return new CheckboxWidgetAnnotationElement(parameters7);
124248
124248
  }
124249
- return new PushButtonWidgetAnnotationElement(parameters8);
124249
+ return new PushButtonWidgetAnnotationElement(parameters7);
124250
124250
  case "Ch":
124251
- return new ChoiceWidgetAnnotationElement(parameters8);
124251
+ return new ChoiceWidgetAnnotationElement(parameters7);
124252
124252
  case "Sig":
124253
- return new SignatureWidgetAnnotationElement(parameters8);
124253
+ return new SignatureWidgetAnnotationElement(parameters7);
124254
124254
  }
124255
- return new WidgetAnnotationElement(parameters8);
124255
+ return new WidgetAnnotationElement(parameters7);
124256
124256
  case AnnotationType2.POPUP:
124257
- return new PopupAnnotationElement(parameters8);
124257
+ return new PopupAnnotationElement(parameters7);
124258
124258
  case AnnotationType2.FREETEXT:
124259
- return new FreeTextAnnotationElement(parameters8);
124259
+ return new FreeTextAnnotationElement(parameters7);
124260
124260
  case AnnotationType2.LINE:
124261
- return new LineAnnotationElement(parameters8);
124261
+ return new LineAnnotationElement(parameters7);
124262
124262
  case AnnotationType2.SQUARE:
124263
- return new SquareAnnotationElement(parameters8);
124263
+ return new SquareAnnotationElement(parameters7);
124264
124264
  case AnnotationType2.CIRCLE:
124265
- return new CircleAnnotationElement(parameters8);
124265
+ return new CircleAnnotationElement(parameters7);
124266
124266
  case AnnotationType2.POLYLINE:
124267
- return new PolylineAnnotationElement(parameters8);
124267
+ return new PolylineAnnotationElement(parameters7);
124268
124268
  case AnnotationType2.CARET:
124269
- return new CaretAnnotationElement(parameters8);
124269
+ return new CaretAnnotationElement(parameters7);
124270
124270
  case AnnotationType2.INK:
124271
- return new InkAnnotationElement(parameters8);
124271
+ return new InkAnnotationElement(parameters7);
124272
124272
  case AnnotationType2.POLYGON:
124273
- return new PolygonAnnotationElement(parameters8);
124273
+ return new PolygonAnnotationElement(parameters7);
124274
124274
  case AnnotationType2.HIGHLIGHT:
124275
- return new HighlightAnnotationElement(parameters8);
124275
+ return new HighlightAnnotationElement(parameters7);
124276
124276
  case AnnotationType2.UNDERLINE:
124277
- return new UnderlineAnnotationElement(parameters8);
124277
+ return new UnderlineAnnotationElement(parameters7);
124278
124278
  case AnnotationType2.SQUIGGLY:
124279
- return new SquigglyAnnotationElement(parameters8);
124279
+ return new SquigglyAnnotationElement(parameters7);
124280
124280
  case AnnotationType2.STRIKEOUT:
124281
- return new StrikeOutAnnotationElement(parameters8);
124281
+ return new StrikeOutAnnotationElement(parameters7);
124282
124282
  case AnnotationType2.STAMP:
124283
- return new StampAnnotationElement(parameters8);
124283
+ return new StampAnnotationElement(parameters7);
124284
124284
  case AnnotationType2.FILEATTACHMENT:
124285
- return new FileAttachmentAnnotationElement(parameters8);
124285
+ return new FileAttachmentAnnotationElement(parameters7);
124286
124286
  case AnnotationType2.RICHMEDIA:
124287
124287
  case AnnotationType2.SCREEN:
124288
124288
  case AnnotationType2.SOUND:
124289
- return new MediaAnnotationElement(parameters8);
124289
+ return new MediaAnnotationElement(parameters7);
124290
124290
  default:
124291
- return new AnnotationElement(parameters8);
124291
+ return new AnnotationElement(parameters7);
124292
124292
  }
124293
124293
  }
124294
124294
  };
@@ -124296,25 +124296,25 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
124296
124296
  #updates = null;
124297
124297
  #hasBorder = false;
124298
124298
  #popupElement = null;
124299
- constructor(parameters8, {
124299
+ constructor(parameters7, {
124300
124300
  isRenderable = false,
124301
124301
  ignoreBorder = false,
124302
124302
  createQuadrilaterals = false
124303
124303
  } = {}) {
124304
124304
  this.isRenderable = isRenderable;
124305
- this.data = parameters8.data;
124306
- this.layer = parameters8.layer;
124307
- this.linkService = parameters8.linkService;
124308
- this.downloadManager = parameters8.downloadManager;
124309
- this.imageResourcesPath = parameters8.imageResourcesPath;
124310
- this.renderForms = parameters8.renderForms;
124311
- this.svgFactory = parameters8.svgFactory;
124312
- this.annotationStorage = parameters8.annotationStorage;
124313
- this.enableComment = parameters8.enableComment;
124314
- this.enableScripting = parameters8.enableScripting;
124315
- this.hasJSActions = parameters8.hasJSActions;
124316
- this._fieldObjects = parameters8.fieldObjects;
124317
- this.parent = parameters8.parent;
124305
+ this.data = parameters7.data;
124306
+ this.layer = parameters7.layer;
124307
+ this.linkService = parameters7.linkService;
124308
+ this.downloadManager = parameters7.downloadManager;
124309
+ this.imageResourcesPath = parameters7.imageResourcesPath;
124310
+ this.renderForms = parameters7.renderForms;
124311
+ this.svgFactory = parameters7.svgFactory;
124312
+ this.annotationStorage = parameters7.annotationStorage;
124313
+ this.enableComment = parameters7.enableComment;
124314
+ this.enableScripting = parameters7.enableScripting;
124315
+ this.hasJSActions = parameters7.hasJSActions;
124316
+ this._fieldObjects = parameters7.fieldObjects;
124317
+ this.parent = parameters7.parent;
124318
124318
  this.hasOwnCommentButton = false;
124319
124319
  if (isRenderable) {
124320
124320
  this.contentElement = this.container = this._createContainer(ignoreBorder);
@@ -124959,12 +124959,12 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
124959
124959
  }
124960
124960
  };
124961
124961
  EditorAnnotationElement = class extends AnnotationElement {
124962
- constructor(parameters8) {
124963
- super(parameters8, {
124962
+ constructor(parameters7) {
124963
+ super(parameters7, {
124964
124964
  isRenderable: true,
124965
124965
  ignoreBorder: true
124966
124966
  });
124967
- this.editor = parameters8.editor;
124967
+ this.editor = parameters7.editor;
124968
124968
  }
124969
124969
  render() {
124970
124970
  this.container.className = "editorAnnotation";
@@ -125005,13 +125005,13 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125005
125005
  }
125006
125006
  };
125007
125007
  LinkAnnotationElement = class extends AnnotationElement {
125008
- constructor(parameters8, options = null) {
125009
- super(parameters8, {
125008
+ constructor(parameters7, options = null) {
125009
+ super(parameters7, {
125010
125010
  isRenderable: true,
125011
125011
  ignoreBorder: !!options?.ignoreBorder,
125012
125012
  createQuadrilaterals: true
125013
125013
  });
125014
- this.isTooltipOnly = parameters8.data.isTooltipOnly;
125014
+ this.isTooltipOnly = parameters7.data.isTooltipOnly;
125015
125015
  }
125016
125016
  render() {
125017
125017
  const {
@@ -125241,8 +125241,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125241
125241
  }
125242
125242
  };
125243
125243
  TextAnnotationElement = class extends AnnotationElement {
125244
- constructor(parameters8) {
125245
- super(parameters8, {
125244
+ constructor(parameters7) {
125245
+ super(parameters7, {
125246
125246
  isRenderable: true
125247
125247
  });
125248
125248
  }
@@ -125365,9 +125365,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125365
125365
  }
125366
125366
  };
125367
125367
  TextWidgetAnnotationElement = class extends WidgetAnnotationElement {
125368
- constructor(parameters8) {
125369
- const isRenderable = parameters8.renderForms || parameters8.data.hasOwnCanvas || !parameters8.data.hasAppearance && !!parameters8.data.fieldValue;
125370
- super(parameters8, {
125368
+ constructor(parameters7) {
125369
+ const isRenderable = parameters7.renderForms || parameters7.data.hasOwnCanvas || !parameters7.data.hasAppearance && !!parameters7.data.fieldValue;
125370
+ super(parameters7, {
125371
125371
  isRenderable
125372
125372
  });
125373
125373
  }
@@ -125743,16 +125743,16 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125743
125743
  }
125744
125744
  };
125745
125745
  SignatureWidgetAnnotationElement = class extends WidgetAnnotationElement {
125746
- constructor(parameters8) {
125747
- super(parameters8, {
125748
- isRenderable: !!parameters8.data.hasOwnCanvas
125746
+ constructor(parameters7) {
125747
+ super(parameters7, {
125748
+ isRenderable: !!parameters7.data.hasOwnCanvas
125749
125749
  });
125750
125750
  }
125751
125751
  };
125752
125752
  CheckboxWidgetAnnotationElement = class extends WidgetAnnotationElement {
125753
- constructor(parameters8) {
125754
- super(parameters8, {
125755
- isRenderable: parameters8.renderForms
125753
+ constructor(parameters7) {
125754
+ super(parameters7, {
125755
+ isRenderable: parameters7.renderForms
125756
125756
  });
125757
125757
  }
125758
125758
  render() {
@@ -125823,9 +125823,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125823
125823
  }
125824
125824
  };
125825
125825
  RadioButtonWidgetAnnotationElement = class extends WidgetAnnotationElement {
125826
- constructor(parameters8) {
125827
- super(parameters8, {
125828
- isRenderable: parameters8.renderForms
125826
+ constructor(parameters7) {
125827
+ super(parameters7, {
125828
+ isRenderable: parameters7.renderForms
125829
125829
  });
125830
125830
  }
125831
125831
  render() {
@@ -125905,9 +125905,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125905
125905
  }
125906
125906
  };
125907
125907
  PushButtonWidgetAnnotationElement = class extends LinkAnnotationElement {
125908
- constructor(parameters8) {
125909
- super(parameters8, {
125910
- ignoreBorder: parameters8.data.hasAppearance
125908
+ constructor(parameters7) {
125909
+ super(parameters7, {
125910
+ ignoreBorder: parameters7.data.hasAppearance
125911
125911
  });
125912
125912
  }
125913
125913
  render() {
@@ -125924,9 +125924,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
125924
125924
  }
125925
125925
  };
125926
125926
  ChoiceWidgetAnnotationElement = class extends WidgetAnnotationElement {
125927
- constructor(parameters8) {
125928
- super(parameters8, {
125929
- isRenderable: parameters8.renderForms
125927
+ constructor(parameters7) {
125928
+ super(parameters7, {
125929
+ isRenderable: parameters7.renderForms
125930
125930
  });
125931
125931
  }
125932
125932
  render() {
@@ -126154,14 +126154,14 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126154
126154
  }
126155
126155
  };
126156
126156
  PopupAnnotationElement = class extends AnnotationElement {
126157
- constructor(parameters8) {
126157
+ constructor(parameters7) {
126158
126158
  const {
126159
126159
  data,
126160
126160
  elements,
126161
126161
  parent
126162
- } = parameters8;
126162
+ } = parameters7;
126163
126163
  const hasCommentManager = !!parent._commentManager;
126164
- super(parameters8, {
126164
+ super(parameters7, {
126165
126165
  isRenderable: !hasCommentManager && AnnotationElement._hasPopupData(data)
126166
126166
  });
126167
126167
  this.elements = elements;
@@ -126772,13 +126772,13 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126772
126772
  }
126773
126773
  };
126774
126774
  FreeTextAnnotationElement = class extends AnnotationElement {
126775
- constructor(parameters8) {
126776
- super(parameters8, {
126775
+ constructor(parameters7) {
126776
+ super(parameters7, {
126777
126777
  isRenderable: true,
126778
126778
  ignoreBorder: true
126779
126779
  });
126780
- this.textContent = parameters8.data.textContent;
126781
- this.textPosition = parameters8.data.textPosition;
126780
+ this.textContent = parameters7.data.textContent;
126781
+ this.textPosition = parameters7.data.textPosition;
126782
126782
  this.annotationEditorType = AnnotationEditorType2.FREETEXT;
126783
126783
  }
126784
126784
  render() {
@@ -126804,8 +126804,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126804
126804
  };
126805
126805
  LineAnnotationElement = class extends AnnotationElement {
126806
126806
  #line = null;
126807
- constructor(parameters8) {
126808
- super(parameters8, {
126807
+ constructor(parameters7) {
126808
+ super(parameters7, {
126809
126809
  isRenderable: true,
126810
126810
  ignoreBorder: true
126811
126811
  });
@@ -126843,8 +126843,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126843
126843
  };
126844
126844
  SquareAnnotationElement = class extends AnnotationElement {
126845
126845
  #square = null;
126846
- constructor(parameters8) {
126847
- super(parameters8, {
126846
+ constructor(parameters7) {
126847
+ super(parameters7, {
126848
126848
  isRenderable: true,
126849
126849
  ignoreBorder: true
126850
126850
  });
@@ -126883,8 +126883,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126883
126883
  };
126884
126884
  CircleAnnotationElement = class extends AnnotationElement {
126885
126885
  #circle = null;
126886
- constructor(parameters8) {
126887
- super(parameters8, {
126886
+ constructor(parameters7) {
126887
+ super(parameters7, {
126888
126888
  isRenderable: true,
126889
126889
  ignoreBorder: true
126890
126890
  });
@@ -126923,8 +126923,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126923
126923
  };
126924
126924
  PolylineAnnotationElement = class extends AnnotationElement {
126925
126925
  #polyline = null;
126926
- constructor(parameters8) {
126927
- super(parameters8, {
126926
+ constructor(parameters7) {
126927
+ super(parameters7, {
126928
126928
  isRenderable: true,
126929
126929
  ignoreBorder: true
126930
126930
  });
@@ -126975,15 +126975,15 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
126975
126975
  }
126976
126976
  };
126977
126977
  PolygonAnnotationElement = class extends PolylineAnnotationElement {
126978
- constructor(parameters8) {
126979
- super(parameters8);
126978
+ constructor(parameters7) {
126979
+ super(parameters7);
126980
126980
  this.containerClassName = "polygonAnnotation";
126981
126981
  this.svgElementName = "svg:polygon";
126982
126982
  }
126983
126983
  };
126984
126984
  CaretAnnotationElement = class extends AnnotationElement {
126985
- constructor(parameters8) {
126986
- super(parameters8, {
126985
+ constructor(parameters7) {
126986
+ super(parameters7, {
126987
126987
  isRenderable: true,
126988
126988
  ignoreBorder: true
126989
126989
  });
@@ -127000,8 +127000,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127000
127000
  InkAnnotationElement = class extends AnnotationElement {
127001
127001
  #polylinesGroupElement = null;
127002
127002
  #polylines = [];
127003
- constructor(parameters8) {
127004
- super(parameters8, {
127003
+ constructor(parameters7) {
127004
+ super(parameters7, {
127005
127005
  isRenderable: true,
127006
127006
  ignoreBorder: true
127007
127007
  });
@@ -127112,8 +127112,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127112
127112
  }
127113
127113
  };
127114
127114
  HighlightAnnotationElement = class extends AnnotationElement {
127115
- constructor(parameters8) {
127116
- super(parameters8, {
127115
+ constructor(parameters7) {
127116
+ super(parameters7, {
127117
127117
  isRenderable: true,
127118
127118
  ignoreBorder: true,
127119
127119
  createQuadrilaterals: true
@@ -127143,8 +127143,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127143
127143
  }
127144
127144
  };
127145
127145
  UnderlineAnnotationElement = class extends AnnotationElement {
127146
- constructor(parameters8) {
127147
- super(parameters8, {
127146
+ constructor(parameters7) {
127147
+ super(parameters7, {
127148
127148
  isRenderable: true,
127149
127149
  ignoreBorder: true,
127150
127150
  createQuadrilaterals: true
@@ -127172,8 +127172,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127172
127172
  }
127173
127173
  };
127174
127174
  SquigglyAnnotationElement = class extends AnnotationElement {
127175
- constructor(parameters8) {
127176
- super(parameters8, {
127175
+ constructor(parameters7) {
127176
+ super(parameters7, {
127177
127177
  isRenderable: true,
127178
127178
  ignoreBorder: true,
127179
127179
  createQuadrilaterals: true
@@ -127201,8 +127201,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127201
127201
  }
127202
127202
  };
127203
127203
  StrikeOutAnnotationElement = class extends AnnotationElement {
127204
- constructor(parameters8) {
127205
- super(parameters8, {
127204
+ constructor(parameters7) {
127205
+ super(parameters7, {
127206
127206
  isRenderable: true,
127207
127207
  ignoreBorder: true,
127208
127208
  createQuadrilaterals: true
@@ -127230,8 +127230,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127230
127230
  }
127231
127231
  };
127232
127232
  StampAnnotationElement = class extends AnnotationElement {
127233
- constructor(parameters8) {
127234
- super(parameters8, {
127233
+ constructor(parameters7) {
127234
+ super(parameters7, {
127235
127235
  isRenderable: true,
127236
127236
  ignoreBorder: true
127237
127237
  });
@@ -127250,8 +127250,8 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127250
127250
  };
127251
127251
  FileAttachmentAnnotationElement = class extends AnnotationElement {
127252
127252
  #trigger = null;
127253
- constructor(parameters8) {
127254
- super(parameters8, {
127253
+ constructor(parameters7) {
127254
+ super(parameters7, {
127255
127255
  isRenderable: true
127256
127256
  });
127257
127257
  const {
@@ -127324,9 +127324,9 @@ fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
127324
127324
  #abortController = new AbortController();
127325
127325
  #contentUrl = null;
127326
127326
  #media = null;
127327
- constructor(parameters8) {
127328
- super(parameters8, {
127329
- isRenderable: !!parameters8.data.richMedia
127327
+ constructor(parameters7) {
127328
+ super(parameters7, {
127329
+ isRenderable: !!parameters7.data.richMedia
127330
127330
  });
127331
127331
  }
127332
127332
  render() {
@@ -135445,8 +135445,8 @@ function IsDeepEqual2(left, right) {
135445
135445
  function ArrayLiteral(elements) {
135446
135446
  return `[${elements.join(", ")}]`;
135447
135447
  }
135448
- function ArrowFunction(parameters8, body) {
135449
- return `((${parameters8.join(", ")}) => ${body})`;
135448
+ function ArrowFunction(parameters7, body) {
135449
+ return `((${parameters7.join(", ")}) => ${body})`;
135450
135450
  }
135451
135451
  function Call(value, arguments_) {
135452
135452
  return `${value}(${arguments_.join(", ")})`;
@@ -138947,8 +138947,8 @@ function IsSchema2(value) {
138947
138947
  }
138948
138948
 
138949
138949
  // ../node_modules/typebox/build/type/types/deferred.mjs
138950
- function Deferred(action, parameters8, options) {
138951
- return memory_exports.Create({ "~kind": "Deferred" }, { type: "deferred", action, parameters: parameters8, options }, {});
138950
+ function Deferred(action, parameters7, options) {
138951
+ return memory_exports.Create({ "~kind": "Deferred" }, { type: "deferred", action, parameters: parameters7, options }, {});
138952
138952
  }
138953
138953
  function IsDeferred(value) {
138954
138954
  return IsKind(value, "Deferred");
@@ -138992,8 +138992,8 @@ function ArrayOptions(type) {
138992
138992
  }
138993
138993
 
138994
138994
  // ../node_modules/typebox/build/type/types/constructor.mjs
138995
- function Constructor(parameters8, instanceType, options = {}) {
138996
- return memory_exports.Create({ "~kind": "Constructor" }, { type: "constructor", parameters: parameters8, instanceType }, options);
138995
+ function Constructor(parameters7, instanceType, options = {}) {
138996
+ return memory_exports.Create({ "~kind": "Constructor" }, { type: "constructor", parameters: parameters7, instanceType }, options);
138997
138997
  }
138998
138998
  function IsConstructor3(value) {
138999
138999
  return IsKind(value, "Constructor");
@@ -139003,8 +139003,8 @@ function ConstructorOptions(type) {
139003
139003
  }
139004
139004
 
139005
139005
  // ../node_modules/typebox/build/type/types/function.mjs
139006
- function _Function_(parameters8, returnType, options = {}) {
139007
- return memory_exports.Create({ ["~kind"]: "Function" }, { type: "function", parameters: parameters8, returnType }, options);
139006
+ function _Function_(parameters7, returnType, options = {}) {
139007
+ return memory_exports.Create({ ["~kind"]: "Function" }, { type: "function", parameters: parameters7, returnType }, options);
139008
139008
  }
139009
139009
  function IsFunction3(value) {
139010
139010
  return IsKind(value, "Function");
@@ -139022,8 +139022,8 @@ function IsRef2(value) {
139022
139022
  }
139023
139023
 
139024
139024
  // ../node_modules/typebox/build/type/types/generic.mjs
139025
- function Generic(parameters8, expression) {
139026
- return memory_exports.Create({ "~kind": "Generic" }, { type: "generic", parameters: parameters8, expression });
139025
+ function Generic(parameters7, expression) {
139026
+ return memory_exports.Create({ "~kind": "Generic" }, { type: "generic", parameters: parameters7, expression });
139027
139027
  }
139028
139028
  function IsGeneric(value) {
139029
139029
  return IsKind(value, "Generic");
@@ -139822,8 +139822,8 @@ function IsVoid(value) {
139822
139822
  }
139823
139823
 
139824
139824
  // ../node_modules/typebox/build/type/script/mapping.mjs
139825
- function IntrinsicOrCall(ref, parameters8) {
139826
- return guard_exports.IsEqual(ref, "Array") ? _Array_(parameters8[0]) : guard_exports.IsEqual(ref, "Capitalize") ? CapitalizeDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "ConstructorParameters") ? ConstructorParametersDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Evaluate") ? EvaluateDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Exclude") ? ExcludeDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "Extract") ? ExtractDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "Index") ? IndexDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "InstanceType") ? InstanceTypeDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Lowercase") ? LowercaseDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "NonNullable") ? NonNullableDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Omit") ? OmitDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "Parameters") ? ParametersDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Partial") ? PartialDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Pick") ? PickDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "Readonly") ? ReadonlyObjectDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "KeyOf") ? KeyOfDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Record") ? RecordDeferred(parameters8[0], parameters8[1]) : guard_exports.IsEqual(ref, "Required") ? RequiredDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "ReturnType") ? ReturnTypeDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Uncapitalize") ? UncapitalizeDeferred(parameters8[0]) : guard_exports.IsEqual(ref, "Uppercase") ? UppercaseDeferred(parameters8[0]) : CallConstruct(Ref2(ref), parameters8);
139825
+ function IntrinsicOrCall(ref, parameters7) {
139826
+ return guard_exports.IsEqual(ref, "Array") ? _Array_(parameters7[0]) : guard_exports.IsEqual(ref, "Capitalize") ? CapitalizeDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "ConstructorParameters") ? ConstructorParametersDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Evaluate") ? EvaluateDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Exclude") ? ExcludeDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "Extract") ? ExtractDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "Index") ? IndexDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "InstanceType") ? InstanceTypeDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Lowercase") ? LowercaseDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "NonNullable") ? NonNullableDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Omit") ? OmitDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "Parameters") ? ParametersDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Partial") ? PartialDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Pick") ? PickDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "Readonly") ? ReadonlyObjectDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "KeyOf") ? KeyOfDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Record") ? RecordDeferred(parameters7[0], parameters7[1]) : guard_exports.IsEqual(ref, "Required") ? RequiredDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "ReturnType") ? ReturnTypeDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Uncapitalize") ? UncapitalizeDeferred(parameters7[0]) : guard_exports.IsEqual(ref, "Uppercase") ? UppercaseDeferred(parameters7[0]) : CallConstruct(Ref2(ref), parameters7);
139827
139827
  }
139828
139828
  function Unreachable2() {
139829
139829
  throw Error("Unreachable");
@@ -140220,11 +140220,11 @@ function InterfaceDeclarationHeritageMapping(input) {
140220
140220
  return guard_exports.IsEqual(input.length, 2) ? input[1] : [];
140221
140221
  }
140222
140222
  function InterfaceDeclarationGenericMapping(input) {
140223
- const parameters8 = input[2];
140223
+ const parameters7 = input[2];
140224
140224
  const heritage = input[3];
140225
140225
  const [properties, patternProperties] = input[4];
140226
140226
  const options = guard_exports.IsEqual(guard_exports.Keys(patternProperties).length, 0) ? {} : { patternProperties };
140227
- return { [input[1]]: Generic(parameters8, InterfaceDeferred(heritage, properties, options)) };
140227
+ return { [input[1]]: Generic(parameters7, InterfaceDeferred(heritage, properties, options)) };
140228
140228
  }
140229
140229
  function InterfaceDeclarationMapping(input) {
140230
140230
  const heritage = input[2];
@@ -140878,8 +140878,8 @@ function ExtendsReturnType(inferred, left, right) {
140878
140878
  }
140879
140879
 
140880
140880
  // ../node_modules/typebox/build/type/extends/constructor.mjs
140881
- function ExtendsConstructor(inferred, parameters8, returnType, right) {
140882
- return IsAny(right) ? ExtendsTrue(inferred) : IsUnknown(right) ? ExtendsTrue(inferred) : IsConstructor3(right) ? Match4(ExtendsParameters(inferred, parameters8, right["parameters"]), (inferred2) => ExtendsReturnType(inferred2, returnType, right["instanceType"]), () => ExtendsFalse()) : ExtendsFalse();
140881
+ function ExtendsConstructor(inferred, parameters7, returnType, right) {
140882
+ return IsAny(right) ? ExtendsTrue(inferred) : IsUnknown(right) ? ExtendsTrue(inferred) : IsConstructor3(right) ? Match4(ExtendsParameters(inferred, parameters7, right["parameters"]), (inferred2) => ExtendsReturnType(inferred2, returnType, right["instanceType"]), () => ExtendsFalse()) : ExtendsFalse();
140883
140883
  }
140884
140884
 
140885
140885
  // ../node_modules/typebox/build/type/extends/dependent.mjs
@@ -140894,8 +140894,8 @@ function ExtendsEnum(inferred, left, right) {
140894
140894
  }
140895
140895
 
140896
140896
  // ../node_modules/typebox/build/type/extends/function.mjs
140897
- function ExtendsFunction(inferred, parameters8, returnType, right) {
140898
- return IsAny(right) ? ExtendsTrue(inferred) : IsUnknown(right) ? ExtendsTrue(inferred) : IsFunction3(right) ? Match4(ExtendsParameters(inferred, parameters8, right["parameters"]), (inferred2) => ExtendsReturnType(inferred2, returnType, right["returnType"]), () => ExtendsFalse()) : ExtendsFalse();
140897
+ function ExtendsFunction(inferred, parameters7, returnType, right) {
140898
+ return IsAny(right) ? ExtendsTrue(inferred) : IsUnknown(right) ? ExtendsTrue(inferred) : IsFunction3(right) ? Match4(ExtendsParameters(inferred, parameters7, right["parameters"]), (inferred2) => ExtendsReturnType(inferred2, returnType, right["returnType"]), () => ExtendsFalse()) : ExtendsFalse();
140899
140899
  }
140900
140900
 
140901
140901
  // ../node_modules/typebox/build/type/extends/integer.mjs
@@ -141328,8 +141328,8 @@ function CollectDistributionNames(expression, result = []) {
141328
141328
  IsDeferred(expression) && guard_exports.IsEqual(expression.action, "Conditional") ? IsRef2(expression.parameters[0]) ? CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], [...result, expression.parameters[0]["$ref"]])) : CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], result)) : IsDeferred(expression) && guard_exports.IsEqual(expression.action, "Mapped") ? IsDeferred(expression.parameters[1]) && guard_exports.IsEqual(expression.parameters[1].action, "KeyOf") && IsRef2(expression.parameters[1].parameters[0]) ? [...result, expression.parameters[1].parameters[0]["$ref"]] : result : result
141329
141329
  );
141330
141330
  }
141331
- function BuildDistributionArray(parameters8, names3) {
141332
- return parameters8.reduce((result, left) => [...result, names3.includes(left.name)], []);
141331
+ function BuildDistributionArray(parameters7, names3) {
141332
+ return parameters7.reduce((result, left) => [...result, names3.includes(left.name)], []);
141333
141333
  }
141334
141334
  function ZipDistributionArray(arguments_, distributionArray, result = []) {
141335
141335
  return guard_exports.ShiftLeft(arguments_, (argumentLeft, argumentRight) => guard_exports.ShiftLeft(distributionArray, (booleanLeft, booleanRight) => ZipDistributionArray(argumentRight, booleanRight, [...result, [booleanLeft, argumentLeft]]), () => result), () => result);
@@ -141350,9 +141350,9 @@ function Distribute2(zipped) {
141350
141350
  return guard_exports.IsEqual(left[0], true) ? Cross(result, Expand(left[1])) : Cross(result, [left[1]]);
141351
141351
  }, [[]]);
141352
141352
  }
141353
- function DistributeArguments(parameters8, arguments_, expression) {
141353
+ function DistributeArguments(parameters7, arguments_, expression) {
141354
141354
  const distributionNames = CollectDistributionNames(expression);
141355
- const distributionArray = BuildDistributionArray(parameters8, distributionNames);
141355
+ const distributionArray = BuildDistributionArray(parameters7, distributionNames);
141356
141356
  const zippedArguments = ZipDistributionArray(arguments_, distributionArray);
141357
141357
  return IsDeferred(expression) && guard_exports.IsEqual(expression.action, "Conditional") ? Distribute2(zippedArguments) : IsDeferred(expression) && guard_exports.IsEqual(expression.action, "Mapped") ? Distribute2(zippedArguments) : [arguments_];
141358
141358
  }
@@ -141364,8 +141364,8 @@ function FromNotResolvable() {
141364
141364
  function FromNotGeneric() {
141365
141365
  return ["(not-generic)", Never()];
141366
141366
  }
141367
- function FromGeneric(name, parameters8, expression) {
141368
- return [name, Generic(parameters8, expression)];
141367
+ function FromGeneric(name, parameters7, expression) {
141368
+ return [name, Generic(parameters7, expression)];
141369
141369
  }
141370
141370
  function FromRef4(context, ref, arguments_) {
141371
141371
  return ref in context ? FromType6(context, ref, context[ref], arguments_) : FromNotResolvable();
@@ -141394,11 +141394,11 @@ function BindArguments(context, state3, parameterLeft, parameterRight, arguments
141394
141394
  const instantiatedEquals = InstantiateType(context, state3, parameterLeft.equals);
141395
141395
  return guard_exports.ShiftLeft(arguments_, (left, right) => BindParameters(BindArgument(context, state3, parameterLeft["name"], instantiatedExtends, left), state3, parameterRight, right), () => BindParameters(BindArgument(context, state3, parameterLeft["name"], instantiatedExtends, instantiatedEquals), state3, parameterRight, []));
141396
141396
  }
141397
- function BindParameters(context, state3, parameters8, arguments_) {
141398
- return guard_exports.ShiftLeft(parameters8, (left, right) => BindArguments(context, state3, left, right, arguments_), () => context);
141397
+ function BindParameters(context, state3, parameters7, arguments_) {
141398
+ return guard_exports.ShiftLeft(parameters7, (left, right) => BindArguments(context, state3, left, right, arguments_), () => context);
141399
141399
  }
141400
- function ResolveArgumentsContext(context, state3, parameters8, arguments_) {
141401
- return BindParameters(context, state3, parameters8, arguments_);
141400
+ function ResolveArgumentsContext(context, state3, parameters7, arguments_) {
141401
+ return BindParameters(context, state3, parameters7, arguments_);
141402
141402
  }
141403
141403
 
141404
141404
  // ../node_modules/typebox/build/type/engine/call/instantiate.mjs
@@ -141410,17 +141410,17 @@ function IsTailCall(state3, name) {
141410
141410
  const result = guard_exports.IsEqual(Peek(state3), name);
141411
141411
  return result;
141412
141412
  }
141413
- function CallDispatch(context, state3, target, parameters8, expression, arguments_) {
141414
- const argumentsContext = ResolveArgumentsContext(context, state3, parameters8, arguments_);
141413
+ function CallDispatch(context, state3, target, parameters7, expression, arguments_) {
141414
+ const argumentsContext = ResolveArgumentsContext(context, state3, parameters7, arguments_);
141415
141415
  const returnType = InstantiateType(argumentsContext, State([...state3["callstack"], target["$ref"]], state3["visited"]), expression);
141416
141416
  return InstantiateType(argumentsContext, State([], []), returnType);
141417
141417
  }
141418
- function CallDistributed(context, state3, target, parameters8, expression, distributedArguments) {
141419
- return distributedArguments.reduce((result, arguments_) => [...result, CallDispatch(context, state3, target, parameters8, expression, arguments_)], []);
141418
+ function CallDistributed(context, state3, target, parameters7, expression, distributedArguments) {
141419
+ return distributedArguments.reduce((result, arguments_) => [...result, CallDispatch(context, state3, target, parameters7, expression, arguments_)], []);
141420
141420
  }
141421
- function CallImmediate(context, state3, target, parameters8, expression, arguments_) {
141422
- const distributedArguments = DistributeArguments(parameters8, arguments_, expression);
141423
- const returnTypes = CallDistributed(context, state3, target, parameters8, expression, distributedArguments);
141421
+ function CallImmediate(context, state3, target, parameters7, expression, arguments_) {
141422
+ const distributedArguments = DistributeArguments(parameters7, arguments_, expression);
141423
+ const returnTypes = CallDistributed(context, state3, target, parameters7, expression, distributedArguments);
141424
141424
  const result = guard_exports.IsEqual(returnTypes.length, 1) ? returnTypes[0] : EvaluateUnion(returnTypes);
141425
141425
  return result;
141426
141426
  }
@@ -141588,8 +141588,8 @@ function ConstructorParameters(type, options = {}) {
141588
141588
 
141589
141589
  // ../node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs
141590
141590
  function ConstructorParametersOperation(type) {
141591
- const parameters8 = IsConstructor3(type) ? type["parameters"] : [];
141592
- const instantiatedParameters = InstantiateElements({}, State([], []), parameters8);
141591
+ const parameters7 = IsConstructor3(type) ? type["parameters"] : [];
141592
+ const instantiatedParameters = InstantiateElements({}, State([], []), parameters7);
141593
141593
  const result = Tuple(instantiatedParameters);
141594
141594
  return result;
141595
141595
  }
@@ -142196,8 +142196,8 @@ function Parameters(type, options = {}) {
142196
142196
 
142197
142197
  // ../node_modules/typebox/build/type/engine/parameters/instantiate.mjs
142198
142198
  function ParametersOperation(type) {
142199
- const parameters8 = IsFunction3(type) ? type["parameters"] : [];
142200
- const instantiatedParameters = InstantiateElements({}, State([], []), parameters8);
142199
+ const parameters7 = IsFunction3(type) ? type["parameters"] : [];
142200
+ const instantiatedParameters = InstantiateElements({}, State([], []), parameters7);
142201
142201
  const result = Tuple(instantiatedParameters);
142202
142202
  return result;
142203
142203
  }
@@ -142520,12 +142520,12 @@ function WithModifiers(type, instantiatedType) {
142520
142520
  const withImmutable = IsImmutable(type) ? AddImmutableAction(withReadonly, {}) : withReadonly;
142521
142521
  return withImmutable;
142522
142522
  }
142523
- function InstantiateDeferred(context, state3, action, parameters8, options) {
142523
+ function InstantiateDeferred(context, state3, action, parameters7, options) {
142524
142524
  return (
142525
142525
  // Modifiers
142526
- guard_exports.IsEqual(action, "AddImmutable") ? AddImmutableInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "RemoveImmutable") ? RemoveImmutableInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "AddReadonly") ? AddReadonlyInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "RemoveReadonly") ? RemoveReadonlyInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "AddOptional") ? AddOptionalInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "RemoveOptional") ? RemoveOptionalInstantiate(context, state3, parameters8[0], options) : (
142526
+ guard_exports.IsEqual(action, "AddImmutable") ? AddImmutableInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "RemoveImmutable") ? RemoveImmutableInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "AddReadonly") ? AddReadonlyInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "RemoveReadonly") ? RemoveReadonlyInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "AddOptional") ? AddOptionalInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "RemoveOptional") ? RemoveOptionalInstantiate(context, state3, parameters7[0], options) : (
142527
142527
  // Actions
142528
- guard_exports.IsEqual(action, "Capitalize") ? CapitalizeInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Conditional") ? ConditionalInstantiate(context, state3, parameters8[0], parameters8[1], parameters8[2], parameters8[3], options) : guard_exports.IsEqual(action, "ConstructorParameters") ? ConstructorParametersInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Evaluate") ? EvaluateInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Exclude") ? ExcludeInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "Extract") ? ExtractInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "Index") ? IndexInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "InstanceType") ? InstanceTypeInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Interface") ? InterfaceInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "KeyOf") ? KeyOfInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Lowercase") ? LowercaseInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Mapped") ? MappedInstantiate(context, state3, parameters8[0], parameters8[1], parameters8[2], parameters8[3], options) : guard_exports.IsEqual(action, "Module") ? ModuleInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "NonNullable") ? NonNullableInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Pick") ? PickInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "Parameters") ? ParametersInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Partial") ? PartialInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Omit") ? OmitInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "ReadonlyObject") ? ReadonlyObjectInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Record") ? RecordInstantiate(context, state3, parameters8[0], parameters8[1], options) : guard_exports.IsEqual(action, "Required") ? RequiredInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "ReturnType") ? ReturnTypeInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "TemplateLiteral") ? TemplateLiteralInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Uncapitalize") ? UncapitalizeInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "Uppercase") ? UppercaseInstantiate(context, state3, parameters8[0], options) : guard_exports.IsEqual(action, "With") ? WithInstantiate(context, state3, parameters8[0], parameters8[1]) : Deferred(action, parameters8, options)
142528
+ guard_exports.IsEqual(action, "Capitalize") ? CapitalizeInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Conditional") ? ConditionalInstantiate(context, state3, parameters7[0], parameters7[1], parameters7[2], parameters7[3], options) : guard_exports.IsEqual(action, "ConstructorParameters") ? ConstructorParametersInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Evaluate") ? EvaluateInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Exclude") ? ExcludeInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "Extract") ? ExtractInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "Index") ? IndexInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "InstanceType") ? InstanceTypeInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Interface") ? InterfaceInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "KeyOf") ? KeyOfInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Lowercase") ? LowercaseInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Mapped") ? MappedInstantiate(context, state3, parameters7[0], parameters7[1], parameters7[2], parameters7[3], options) : guard_exports.IsEqual(action, "Module") ? ModuleInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "NonNullable") ? NonNullableInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Pick") ? PickInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "Parameters") ? ParametersInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Partial") ? PartialInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Omit") ? OmitInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "ReadonlyObject") ? ReadonlyObjectInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Record") ? RecordInstantiate(context, state3, parameters7[0], parameters7[1], options) : guard_exports.IsEqual(action, "Required") ? RequiredInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "ReturnType") ? ReturnTypeInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "TemplateLiteral") ? TemplateLiteralInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Uncapitalize") ? UncapitalizeInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "Uppercase") ? UppercaseInstantiate(context, state3, parameters7[0], options) : guard_exports.IsEqual(action, "With") ? WithInstantiate(context, state3, parameters7[0], parameters7[1]) : Deferred(action, parameters7, options)
142529
142529
  )
142530
142530
  );
142531
142531
  }
@@ -144278,10 +144278,15 @@ var WORK_PLAN_LIMITS = {
144278
144278
  resourcesPerTask: 50,
144279
144279
  uri: 2e3
144280
144280
  };
144281
+ var WORK_PLAN_CREATE_MAX_DEPTH = 2;
144281
144282
  function object(value) {
144282
144283
  if (typeof value !== "object" || value === null || Array.isArray(value)) throw new Error("must be an object");
144283
144284
  return value;
144284
144285
  }
144286
+ function onlyFields(raw, allowed, field) {
144287
+ const unexpected = Object.keys(raw).find((key) => !allowed.includes(key));
144288
+ if (unexpected !== void 0) throw new Error(`${field}.${unexpected} is not accepted`);
144289
+ }
144285
144290
  function text(value, field, max) {
144286
144291
  if (typeof value !== "string" || value.trim() === "") throw new Error(`${field} must be a non-empty string`);
144287
144292
  if (value.length > max) throw new Error(`${field} is longer than ${max} characters`);
@@ -144383,11 +144388,85 @@ function validateWorkPlan(value) {
144383
144388
  updatedAt
144384
144389
  };
144385
144390
  }
144391
+ function normalizeWorkPlanDraft(value, options = {}) {
144392
+ const raw = object(value);
144393
+ onlyFields(raw, ["title", "tasks"], "plan");
144394
+ if (!Array.isArray(raw.tasks)) throw new Error("tasks must be an array");
144395
+ const usedIds = /* @__PURE__ */ new Set();
144396
+ const generate = () => {
144397
+ for (let attempt = 0; attempt < 100; attempt += 1) {
144398
+ const candidate = text(
144399
+ options.nextId?.() ?? globalThis.crypto.randomUUID(),
144400
+ "generated id",
144401
+ WORK_PLAN_LIMITS.title
144402
+ );
144403
+ if (!usedIds.has(candidate)) {
144404
+ usedIds.add(candidate);
144405
+ return candidate;
144406
+ }
144407
+ }
144408
+ throw new Error("could not generate a unique Work Plan identifier");
144409
+ };
144410
+ const claim = (value2, field) => {
144411
+ const id = text(value2, field, WORK_PLAN_LIMITS.title);
144412
+ if (usedIds.has(id)) throw new Error(`duplicate task id: ${id}`);
144413
+ usedIds.add(id);
144414
+ return id;
144415
+ };
144416
+ const planId = generate();
144417
+ const tasks = [];
144418
+ const visit = (items, depth, parentId) => {
144419
+ if (depth > WORK_PLAN_CREATE_MAX_DEPTH) {
144420
+ throw new Error(`creation tasks may be nested at most ${WORK_PLAN_CREATE_MAX_DEPTH} levels`);
144421
+ }
144422
+ if (items.length > WORK_PLAN_LIMITS.tasks) {
144423
+ throw new Error(`a task collection may contain at most ${WORK_PLAN_LIMITS.tasks} tasks`);
144424
+ }
144425
+ for (const [index5, item] of items.entries()) {
144426
+ const draft = object(item);
144427
+ onlyFields(draft, ["id", "title", "description", "status", "statusReason", "resources", "subtasks"], `tasks[${index5}]`);
144428
+ const status = draft.status ?? "todo";
144429
+ if (typeof status !== "string" || !WORK_PLAN_STATUSES.includes(status)) {
144430
+ throw new Error(`status must be one of ${WORK_PLAN_STATUSES.join(", ")}`);
144431
+ }
144432
+ const id = draft.id === void 0 ? generate() : claim(draft.id, `tasks[${index5}].id`);
144433
+ tasks.push({
144434
+ id,
144435
+ title: text(draft.title, "task.title", WORK_PLAN_LIMITS.title),
144436
+ ...draft.description === void 0 ? {} : { description: text(draft.description, "task.description", WORK_PLAN_LIMITS.description) },
144437
+ status,
144438
+ ...parentId === void 0 ? {} : { parentId },
144439
+ dependsOn: [],
144440
+ resources: draft.resources === void 0 ? [] : resources(draft.resources),
144441
+ ...draft.statusReason === void 0 ? {} : { statusReason: text(draft.statusReason, "task.statusReason", WORK_PLAN_LIMITS.reason) }
144442
+ });
144443
+ if (draft.subtasks !== void 0) {
144444
+ if (!Array.isArray(draft.subtasks)) throw new Error(`tasks[${index5}].subtasks must be an array`);
144445
+ visit(draft.subtasks, depth + 1, id);
144446
+ }
144447
+ if (tasks.length > WORK_PLAN_LIMITS.tasks) {
144448
+ throw new Error(`a work plan may contain at most ${WORK_PLAN_LIMITS.tasks} tasks`);
144449
+ }
144450
+ }
144451
+ };
144452
+ visit(raw.tasks, 1);
144453
+ return validateWorkPlan({
144454
+ version: 1,
144455
+ id: planId,
144456
+ title: text(raw.title, "plan.title", WORK_PLAN_LIMITS.title),
144457
+ tasks,
144458
+ updatedAt: options.now?.() ?? (/* @__PURE__ */ new Date()).toISOString()
144459
+ });
144460
+ }
144386
144461
  function mutateWorkPlan(current, mutation) {
144387
144462
  if (mutation.action === "get") return current;
144388
144463
  if (mutation.action === "clear") return null;
144464
+ if (mutation.action === "create") {
144465
+ if (current !== null) throw new Error("this session already has a Work Plan; use action=replace to overwrite it");
144466
+ return normalizeWorkPlanDraft({ title: mutation.title, tasks: mutation.tasks });
144467
+ }
144389
144468
  if (mutation.action === "replace") return validateWorkPlan(mutation.plan);
144390
- if (current === null) throw new Error("create a plan with action=replace before mutating tasks");
144469
+ if (current === null) throw new Error("create a plan with action=create or action=replace before mutating tasks");
144391
144470
  let tasks = current.tasks.map((item) => ({ ...item, dependsOn: [...item.dependsOn], resources: item.resources.map((resource) => ({ ...resource })) }));
144392
144471
  const index5 = "taskId" in mutation ? tasks.findIndex((item) => item.id === mutation.taskId) : -1;
144393
144472
  if ("taskId" in mutation && index5 < 0) throw new Error(`unknown task: ${mutation.taskId}`);
@@ -151571,8 +151650,8 @@ function IsDeepEqual4(left, right) {
151571
151650
  function ArrayLiteral2(elements) {
151572
151651
  return `[${elements.join(", ")}]`;
151573
151652
  }
151574
- function ArrowFunction2(parameters8, body) {
151575
- return `((${parameters8.join(", ")}) => ${body})`;
151653
+ function ArrowFunction2(parameters7, body) {
151654
+ return `((${parameters7.join(", ")}) => ${body})`;
151576
151655
  }
151577
151656
  function Call3(value, arguments_) {
151578
151657
  return `${value}(${arguments_.join(", ")})`;
@@ -151863,8 +151942,8 @@ function IsSchema3(value) {
151863
151942
  }
151864
151943
 
151865
151944
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/types/deferred.mjs
151866
- function Deferred2(action, parameters8, options) {
151867
- return memory_exports2.Create({ "~kind": "Deferred" }, { type: "deferred", action, parameters: parameters8, options }, {});
151945
+ function Deferred2(action, parameters7, options) {
151946
+ return memory_exports2.Create({ "~kind": "Deferred" }, { type: "deferred", action, parameters: parameters7, options }, {});
151868
151947
  }
151869
151948
  function IsDeferred2(value) {
151870
151949
  return IsKind2(value, "Deferred");
@@ -151908,8 +151987,8 @@ function ArrayOptions2(type) {
151908
151987
  }
151909
151988
 
151910
151989
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/types/constructor.mjs
151911
- function Constructor2(parameters8, instanceType, options = {}) {
151912
- return memory_exports2.Create({ "~kind": "Constructor" }, { type: "constructor", parameters: parameters8, instanceType }, options);
151990
+ function Constructor2(parameters7, instanceType, options = {}) {
151991
+ return memory_exports2.Create({ "~kind": "Constructor" }, { type: "constructor", parameters: parameters7, instanceType }, options);
151913
151992
  }
151914
151993
  function IsConstructor6(value) {
151915
151994
  return IsKind2(value, "Constructor");
@@ -151919,8 +151998,8 @@ function ConstructorOptions2(type) {
151919
151998
  }
151920
151999
 
151921
152000
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/types/function.mjs
151922
- function _Function_3(parameters8, returnType, options = {}) {
151923
- return memory_exports2.Create({ ["~kind"]: "Function" }, { type: "function", parameters: parameters8, returnType }, options);
152001
+ function _Function_3(parameters7, returnType, options = {}) {
152002
+ return memory_exports2.Create({ ["~kind"]: "Function" }, { type: "function", parameters: parameters7, returnType }, options);
151924
152003
  }
151925
152004
  function IsFunction6(value) {
151926
152005
  return IsKind2(value, "Function");
@@ -151938,8 +152017,8 @@ function IsRef3(value) {
151938
152017
  }
151939
152018
 
151940
152019
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/types/generic.mjs
151941
- function Generic2(parameters8, expression) {
151942
- return memory_exports2.Create({ "~kind": "Generic" }, { type: "generic", parameters: parameters8, expression });
152020
+ function Generic2(parameters7, expression) {
152021
+ return memory_exports2.Create({ "~kind": "Generic" }, { type: "generic", parameters: parameters7, expression });
151943
152022
  }
151944
152023
  function IsGeneric2(value) {
151945
152024
  return IsKind2(value, "Generic");
@@ -152998,8 +153077,8 @@ function IsVoid2(value) {
152998
153077
  }
152999
153078
 
153000
153079
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/script/mapping.mjs
153001
- function IntrinsicOrCall2(ref, parameters8) {
153002
- return guard_exports2.IsEqual(ref, "Array") ? _Array_2(parameters8[0]) : guard_exports2.IsEqual(ref, "Capitalize") ? CapitalizeDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "ConstructorParameters") ? ConstructorParametersDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Evaluate") ? EvaluateDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Exclude") ? ExcludeDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "Extract") ? ExtractDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "Index") ? IndexDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "InstanceType") ? InstanceTypeDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Lowercase") ? LowercaseDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "NonNullable") ? NonNullableDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Omit") ? OmitDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "Parameters") ? ParametersDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Partial") ? PartialDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Pick") ? PickDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "Readonly") ? ReadonlyObjectDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "KeyOf") ? KeyOfDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Record") ? RecordDeferred2(parameters8[0], parameters8[1]) : guard_exports2.IsEqual(ref, "Required") ? RequiredDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "ReturnType") ? ReturnTypeDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Uncapitalize") ? UncapitalizeDeferred2(parameters8[0]) : guard_exports2.IsEqual(ref, "Uppercase") ? UppercaseDeferred2(parameters8[0]) : CallConstruct2(Ref3(ref), parameters8);
153080
+ function IntrinsicOrCall2(ref, parameters7) {
153081
+ return guard_exports2.IsEqual(ref, "Array") ? _Array_2(parameters7[0]) : guard_exports2.IsEqual(ref, "Capitalize") ? CapitalizeDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "ConstructorParameters") ? ConstructorParametersDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Evaluate") ? EvaluateDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Exclude") ? ExcludeDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "Extract") ? ExtractDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "Index") ? IndexDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "InstanceType") ? InstanceTypeDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Lowercase") ? LowercaseDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "NonNullable") ? NonNullableDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Omit") ? OmitDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "Parameters") ? ParametersDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Partial") ? PartialDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Pick") ? PickDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "Readonly") ? ReadonlyObjectDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "KeyOf") ? KeyOfDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Record") ? RecordDeferred2(parameters7[0], parameters7[1]) : guard_exports2.IsEqual(ref, "Required") ? RequiredDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "ReturnType") ? ReturnTypeDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Uncapitalize") ? UncapitalizeDeferred2(parameters7[0]) : guard_exports2.IsEqual(ref, "Uppercase") ? UppercaseDeferred2(parameters7[0]) : CallConstruct2(Ref3(ref), parameters7);
153003
153082
  }
153004
153083
  function Unreachable4() {
153005
153084
  throw Error("Unreachable");
@@ -153396,11 +153475,11 @@ function InterfaceDeclarationHeritageMapping2(input) {
153396
153475
  return guard_exports2.IsEqual(input.length, 2) ? input[1] : [];
153397
153476
  }
153398
153477
  function InterfaceDeclarationGenericMapping2(input) {
153399
- const parameters8 = input[2];
153478
+ const parameters7 = input[2];
153400
153479
  const heritage = input[3];
153401
153480
  const [properties, patternProperties] = input[4];
153402
153481
  const options = guard_exports2.IsEqual(guard_exports2.Keys(patternProperties).length, 0) ? {} : { patternProperties };
153403
- return { [input[1]]: Generic2(parameters8, InterfaceDeferred2(heritage, properties, options)) };
153482
+ return { [input[1]]: Generic2(parameters7, InterfaceDeferred2(heritage, properties, options)) };
153404
153483
  }
153405
153484
  function InterfaceDeclarationMapping2(input) {
153406
153485
  const heritage = input[2];
@@ -154054,8 +154133,8 @@ function ExtendsReturnType2(inferred, left, right) {
154054
154133
  }
154055
154134
 
154056
154135
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/extends/constructor.mjs
154057
- function ExtendsConstructor2(inferred, parameters8, returnType, right) {
154058
- return IsAny2(right) ? ExtendsTrue2(inferred) : IsUnknown2(right) ? ExtendsTrue2(inferred) : IsConstructor6(right) ? Match7(ExtendsParameters2(inferred, parameters8, right["parameters"]), (inferred2) => ExtendsReturnType2(inferred2, returnType, right["instanceType"]), () => ExtendsFalse2()) : ExtendsFalse2();
154136
+ function ExtendsConstructor2(inferred, parameters7, returnType, right) {
154137
+ return IsAny2(right) ? ExtendsTrue2(inferred) : IsUnknown2(right) ? ExtendsTrue2(inferred) : IsConstructor6(right) ? Match7(ExtendsParameters2(inferred, parameters7, right["parameters"]), (inferred2) => ExtendsReturnType2(inferred2, returnType, right["instanceType"]), () => ExtendsFalse2()) : ExtendsFalse2();
154059
154138
  }
154060
154139
 
154061
154140
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/extends/dependent.mjs
@@ -154070,8 +154149,8 @@ function ExtendsEnum2(inferred, left, right) {
154070
154149
  }
154071
154150
 
154072
154151
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/extends/function.mjs
154073
- function ExtendsFunction2(inferred, parameters8, returnType, right) {
154074
- return IsAny2(right) ? ExtendsTrue2(inferred) : IsUnknown2(right) ? ExtendsTrue2(inferred) : IsFunction6(right) ? Match7(ExtendsParameters2(inferred, parameters8, right["parameters"]), (inferred2) => ExtendsReturnType2(inferred2, returnType, right["returnType"]), () => ExtendsFalse2()) : ExtendsFalse2();
154152
+ function ExtendsFunction2(inferred, parameters7, returnType, right) {
154153
+ return IsAny2(right) ? ExtendsTrue2(inferred) : IsUnknown2(right) ? ExtendsTrue2(inferred) : IsFunction6(right) ? Match7(ExtendsParameters2(inferred, parameters7, right["parameters"]), (inferred2) => ExtendsReturnType2(inferred2, returnType, right["returnType"]), () => ExtendsFalse2()) : ExtendsFalse2();
154075
154154
  }
154076
154155
 
154077
154156
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/extends/integer.mjs
@@ -154504,8 +154583,8 @@ function CollectDistributionNames2(expression, result = []) {
154504
154583
  IsDeferred2(expression) && guard_exports2.IsEqual(expression.action, "Conditional") ? IsRef3(expression.parameters[0]) ? CollectDistributionNames2(expression.parameters[2], CollectDistributionNames2(expression.parameters[3], [...result, expression.parameters[0]["$ref"]])) : CollectDistributionNames2(expression.parameters[2], CollectDistributionNames2(expression.parameters[3], result)) : IsDeferred2(expression) && guard_exports2.IsEqual(expression.action, "Mapped") ? IsDeferred2(expression.parameters[1]) && guard_exports2.IsEqual(expression.parameters[1].action, "KeyOf") && IsRef3(expression.parameters[1].parameters[0]) ? [...result, expression.parameters[1].parameters[0]["$ref"]] : result : result
154505
154584
  );
154506
154585
  }
154507
- function BuildDistributionArray2(parameters8, names3) {
154508
- return parameters8.reduce((result, left) => [...result, names3.includes(left.name)], []);
154586
+ function BuildDistributionArray2(parameters7, names3) {
154587
+ return parameters7.reduce((result, left) => [...result, names3.includes(left.name)], []);
154509
154588
  }
154510
154589
  function ZipDistributionArray2(arguments_, distributionArray, result = []) {
154511
154590
  return guard_exports2.ShiftLeft(arguments_, (argumentLeft, argumentRight) => guard_exports2.ShiftLeft(distributionArray, (booleanLeft, booleanRight) => ZipDistributionArray2(argumentRight, booleanRight, [...result, [booleanLeft, argumentLeft]]), () => result), () => result);
@@ -154526,9 +154605,9 @@ function Distribute4(zipped) {
154526
154605
  return guard_exports2.IsEqual(left[0], true) ? Cross2(result, Expand2(left[1])) : Cross2(result, [left[1]]);
154527
154606
  }, [[]]);
154528
154607
  }
154529
- function DistributeArguments2(parameters8, arguments_, expression) {
154608
+ function DistributeArguments2(parameters7, arguments_, expression) {
154530
154609
  const distributionNames = CollectDistributionNames2(expression);
154531
- const distributionArray = BuildDistributionArray2(parameters8, distributionNames);
154610
+ const distributionArray = BuildDistributionArray2(parameters7, distributionNames);
154532
154611
  const zippedArguments = ZipDistributionArray2(arguments_, distributionArray);
154533
154612
  return IsDeferred2(expression) && guard_exports2.IsEqual(expression.action, "Conditional") ? Distribute4(zippedArguments) : IsDeferred2(expression) && guard_exports2.IsEqual(expression.action, "Mapped") ? Distribute4(zippedArguments) : [arguments_];
154534
154613
  }
@@ -154540,8 +154619,8 @@ function FromNotResolvable2() {
154540
154619
  function FromNotGeneric2() {
154541
154620
  return ["(not-generic)", Never2()];
154542
154621
  }
154543
- function FromGeneric2(name, parameters8, expression) {
154544
- return [name, Generic2(parameters8, expression)];
154622
+ function FromGeneric2(name, parameters7, expression) {
154623
+ return [name, Generic2(parameters7, expression)];
154545
154624
  }
154546
154625
  function FromRef15(context, ref, arguments_) {
154547
154626
  return ref in context ? FromType32(context, ref, context[ref], arguments_) : FromNotResolvable2();
@@ -154570,11 +154649,11 @@ function BindArguments2(context, state3, parameterLeft, parameterRight, argument
154570
154649
  const instantiatedEquals = InstantiateType2(context, state3, parameterLeft.equals);
154571
154650
  return guard_exports2.ShiftLeft(arguments_, (left, right) => BindParameters2(BindArgument2(context, state3, parameterLeft["name"], instantiatedExtends, left), state3, parameterRight, right), () => BindParameters2(BindArgument2(context, state3, parameterLeft["name"], instantiatedExtends, instantiatedEquals), state3, parameterRight, []));
154572
154651
  }
154573
- function BindParameters2(context, state3, parameters8, arguments_) {
154574
- return guard_exports2.ShiftLeft(parameters8, (left, right) => BindArguments2(context, state3, left, right, arguments_), () => context);
154652
+ function BindParameters2(context, state3, parameters7, arguments_) {
154653
+ return guard_exports2.ShiftLeft(parameters7, (left, right) => BindArguments2(context, state3, left, right, arguments_), () => context);
154575
154654
  }
154576
- function ResolveArgumentsContext2(context, state3, parameters8, arguments_) {
154577
- return BindParameters2(context, state3, parameters8, arguments_);
154655
+ function ResolveArgumentsContext2(context, state3, parameters7, arguments_) {
154656
+ return BindParameters2(context, state3, parameters7, arguments_);
154578
154657
  }
154579
154658
 
154580
154659
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/engine/call/instantiate.mjs
@@ -154586,17 +154665,17 @@ function IsTailCall2(state3, name) {
154586
154665
  const result = guard_exports2.IsEqual(Peek2(state3), name);
154587
154666
  return result;
154588
154667
  }
154589
- function CallDispatch2(context, state3, target, parameters8, expression, arguments_) {
154590
- const argumentsContext = ResolveArgumentsContext2(context, state3, parameters8, arguments_);
154668
+ function CallDispatch2(context, state3, target, parameters7, expression, arguments_) {
154669
+ const argumentsContext = ResolveArgumentsContext2(context, state3, parameters7, arguments_);
154591
154670
  const returnType = InstantiateType2(argumentsContext, State2([...state3["callstack"], target["$ref"]], state3["visited"]), expression);
154592
154671
  return InstantiateType2(argumentsContext, State2([], []), returnType);
154593
154672
  }
154594
- function CallDistributed2(context, state3, target, parameters8, expression, distributedArguments) {
154595
- return distributedArguments.reduce((result, arguments_) => [...result, CallDispatch2(context, state3, target, parameters8, expression, arguments_)], []);
154673
+ function CallDistributed2(context, state3, target, parameters7, expression, distributedArguments) {
154674
+ return distributedArguments.reduce((result, arguments_) => [...result, CallDispatch2(context, state3, target, parameters7, expression, arguments_)], []);
154596
154675
  }
154597
- function CallImmediate2(context, state3, target, parameters8, expression, arguments_) {
154598
- const distributedArguments = DistributeArguments2(parameters8, arguments_, expression);
154599
- const returnTypes = CallDistributed2(context, state3, target, parameters8, expression, distributedArguments);
154676
+ function CallImmediate2(context, state3, target, parameters7, expression, arguments_) {
154677
+ const distributedArguments = DistributeArguments2(parameters7, arguments_, expression);
154678
+ const returnTypes = CallDistributed2(context, state3, target, parameters7, expression, distributedArguments);
154600
154679
  const result = guard_exports2.IsEqual(returnTypes.length, 1) ? returnTypes[0] : EvaluateUnion2(returnTypes);
154601
154680
  return result;
154602
154681
  }
@@ -154764,8 +154843,8 @@ function ConstructorParameters2(type, options = {}) {
154764
154843
 
154765
154844
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs
154766
154845
  function ConstructorParametersOperation2(type) {
154767
- const parameters8 = IsConstructor6(type) ? type["parameters"] : [];
154768
- const instantiatedParameters = InstantiateElements2({}, State2([], []), parameters8);
154846
+ const parameters7 = IsConstructor6(type) ? type["parameters"] : [];
154847
+ const instantiatedParameters = InstantiateElements2({}, State2([], []), parameters7);
154769
154848
  const result = Tuple2(instantiatedParameters);
154770
154849
  return result;
154771
154850
  }
@@ -155372,8 +155451,8 @@ function Parameters2(type, options = {}) {
155372
155451
 
155373
155452
  // ../node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/type/engine/parameters/instantiate.mjs
155374
155453
  function ParametersOperation2(type) {
155375
- const parameters8 = IsFunction6(type) ? type["parameters"] : [];
155376
- const instantiatedParameters = InstantiateElements2({}, State2([], []), parameters8);
155454
+ const parameters7 = IsFunction6(type) ? type["parameters"] : [];
155455
+ const instantiatedParameters = InstantiateElements2({}, State2([], []), parameters7);
155377
155456
  const result = Tuple2(instantiatedParameters);
155378
155457
  return result;
155379
155458
  }
@@ -155696,12 +155775,12 @@ function WithModifiers2(type, instantiatedType) {
155696
155775
  const withImmutable = IsImmutable2(type) ? AddImmutableAction2(withReadonly, {}) : withReadonly;
155697
155776
  return withImmutable;
155698
155777
  }
155699
- function InstantiateDeferred2(context, state3, action, parameters8, options) {
155778
+ function InstantiateDeferred2(context, state3, action, parameters7, options) {
155700
155779
  return (
155701
155780
  // Modifiers
155702
- guard_exports2.IsEqual(action, "AddImmutable") ? AddImmutableInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "RemoveImmutable") ? RemoveImmutableInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "AddReadonly") ? AddReadonlyInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "RemoveReadonly") ? RemoveReadonlyInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "AddOptional") ? AddOptionalInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "RemoveOptional") ? RemoveOptionalInstantiate2(context, state3, parameters8[0], options) : (
155781
+ guard_exports2.IsEqual(action, "AddImmutable") ? AddImmutableInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "RemoveImmutable") ? RemoveImmutableInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "AddReadonly") ? AddReadonlyInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "RemoveReadonly") ? RemoveReadonlyInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "AddOptional") ? AddOptionalInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "RemoveOptional") ? RemoveOptionalInstantiate2(context, state3, parameters7[0], options) : (
155703
155782
  // Actions
155704
- guard_exports2.IsEqual(action, "Capitalize") ? CapitalizeInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Conditional") ? ConditionalInstantiate2(context, state3, parameters8[0], parameters8[1], parameters8[2], parameters8[3], options) : guard_exports2.IsEqual(action, "ConstructorParameters") ? ConstructorParametersInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Evaluate") ? EvaluateInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Exclude") ? ExcludeInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "Extract") ? ExtractInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "Index") ? IndexInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "InstanceType") ? InstanceTypeInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Interface") ? InterfaceInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "KeyOf") ? KeyOfInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Lowercase") ? LowercaseInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Mapped") ? MappedInstantiate2(context, state3, parameters8[0], parameters8[1], parameters8[2], parameters8[3], options) : guard_exports2.IsEqual(action, "Module") ? ModuleInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "NonNullable") ? NonNullableInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Pick") ? PickInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "Parameters") ? ParametersInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Partial") ? PartialInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Omit") ? OmitInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "ReadonlyObject") ? ReadonlyObjectInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Record") ? RecordInstantiate2(context, state3, parameters8[0], parameters8[1], options) : guard_exports2.IsEqual(action, "Required") ? RequiredInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "ReturnType") ? ReturnTypeInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "TemplateLiteral") ? TemplateLiteralInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Uncapitalize") ? UncapitalizeInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "Uppercase") ? UppercaseInstantiate2(context, state3, parameters8[0], options) : guard_exports2.IsEqual(action, "With") ? WithInstantiate2(context, state3, parameters8[0], parameters8[1]) : Deferred2(action, parameters8, options)
155783
+ guard_exports2.IsEqual(action, "Capitalize") ? CapitalizeInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Conditional") ? ConditionalInstantiate2(context, state3, parameters7[0], parameters7[1], parameters7[2], parameters7[3], options) : guard_exports2.IsEqual(action, "ConstructorParameters") ? ConstructorParametersInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Evaluate") ? EvaluateInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Exclude") ? ExcludeInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "Extract") ? ExtractInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "Index") ? IndexInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "InstanceType") ? InstanceTypeInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Interface") ? InterfaceInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "KeyOf") ? KeyOfInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Lowercase") ? LowercaseInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Mapped") ? MappedInstantiate2(context, state3, parameters7[0], parameters7[1], parameters7[2], parameters7[3], options) : guard_exports2.IsEqual(action, "Module") ? ModuleInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "NonNullable") ? NonNullableInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Pick") ? PickInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "Parameters") ? ParametersInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Partial") ? PartialInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Omit") ? OmitInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "ReadonlyObject") ? ReadonlyObjectInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Record") ? RecordInstantiate2(context, state3, parameters7[0], parameters7[1], options) : guard_exports2.IsEqual(action, "Required") ? RequiredInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "ReturnType") ? ReturnTypeInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "TemplateLiteral") ? TemplateLiteralInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Uncapitalize") ? UncapitalizeInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "Uppercase") ? UppercaseInstantiate2(context, state3, parameters7[0], options) : guard_exports2.IsEqual(action, "With") ? WithInstantiate2(context, state3, parameters7[0], parameters7[1]) : Deferred2(action, parameters7, options)
155705
155784
  )
155706
155785
  );
155707
155786
  }
@@ -169046,38 +169125,91 @@ async function deleteWorkPlan(sessionFile) {
169046
169125
  }
169047
169126
 
169048
169127
  // ../server/src/workPlanTool.ts
169049
- var parameters7 = typebox_exports2.Object({
169050
- action: typebox_exports2.Union([
169051
- typebox_exports2.Literal("get"),
169052
- typebox_exports2.Literal("clear"),
169053
- typebox_exports2.Literal("replace"),
169054
- typebox_exports2.Literal("add_task"),
169055
- typebox_exports2.Literal("update_task"),
169056
- typebox_exports2.Literal("move_task"),
169057
- typebox_exports2.Literal("remove_task"),
169058
- typebox_exports2.Literal("set_dependencies"),
169059
- typebox_exports2.Literal("set_resources")
169060
- ]),
169061
- plan: typebox_exports2.Optional(typebox_exports2.Unknown()),
169062
- task: typebox_exports2.Optional(typebox_exports2.Unknown()),
169063
- taskId: typebox_exports2.Optional(typebox_exports2.String()),
169064
- changes: typebox_exports2.Optional(typebox_exports2.Unknown()),
169065
- parentId: typebox_exports2.Optional(typebox_exports2.Union([typebox_exports2.String(), typebox_exports2.Null()])),
169066
- dependsOn: typebox_exports2.Optional(typebox_exports2.Array(typebox_exports2.String())),
169067
- resources: typebox_exports2.Optional(typebox_exports2.Array(typebox_exports2.Object({ uri: typebox_exports2.String(), label: typebox_exports2.Optional(typebox_exports2.String()) })))
169128
+ var objectOptions = { additionalProperties: false };
169129
+ var boundedText = (maxLength, description) => typebox_exports2.String({
169130
+ minLength: 1,
169131
+ maxLength,
169132
+ pattern: "\\S",
169133
+ ...description === void 0 ? {} : { description }
169068
169134
  });
169135
+ var identifierSchema = boundedText(WORK_PLAN_LIMITS.title);
169136
+ var titleSchema = boundedText(WORK_PLAN_LIMITS.title);
169137
+ var descriptionSchema = boundedText(WORK_PLAN_LIMITS.description);
169138
+ var reasonSchema = boundedText(WORK_PLAN_LIMITS.reason);
169139
+ var statusSchema = typebox_exports2.Union(WORK_PLAN_STATUSES.map((status) => typebox_exports2.Literal(status)));
169140
+ var resourceSchema = typebox_exports2.Object({
169141
+ uri: boundedText(WORK_PLAN_LIMITS.uri),
169142
+ label: typebox_exports2.Optional(boundedText(WORK_PLAN_LIMITS.title))
169143
+ }, objectOptions);
169144
+ var resourcesSchema = typebox_exports2.Array(resourceSchema, { maxItems: WORK_PLAN_LIMITS.resourcesPerTask });
169145
+ var dependenciesSchema = typebox_exports2.Array(identifierSchema, { maxItems: WORK_PLAN_LIMITS.tasks, uniqueItems: true });
169146
+ var normalizedTaskSchema = typebox_exports2.Object({
169147
+ id: identifierSchema,
169148
+ title: titleSchema,
169149
+ description: typebox_exports2.Optional(descriptionSchema),
169150
+ status: statusSchema,
169151
+ parentId: typebox_exports2.Optional(identifierSchema),
169152
+ dependsOn: typebox_exports2.Optional(dependenciesSchema),
169153
+ resources: typebox_exports2.Optional(resourcesSchema),
169154
+ statusReason: typebox_exports2.Optional(reasonSchema)
169155
+ }, objectOptions);
169156
+ var normalizedPlanSchema = typebox_exports2.Object({
169157
+ version: typebox_exports2.Literal(1),
169158
+ id: identifierSchema,
169159
+ title: titleSchema,
169160
+ tasks: typebox_exports2.Array(normalizedTaskSchema, { maxItems: WORK_PLAN_LIMITS.tasks }),
169161
+ updatedAt: boundedText(WORK_PLAN_LIMITS.title)
169162
+ }, objectOptions);
169163
+ var creationTaskSchema = (depth) => typebox_exports2.Object({
169164
+ id: typebox_exports2.Optional(boundedText(
169165
+ WORK_PLAN_LIMITS.title,
169166
+ "Optional identifier, unique across the plan; one is generated when omitted."
169167
+ )),
169168
+ title: titleSchema,
169169
+ description: typebox_exports2.Optional(descriptionSchema),
169170
+ status: typebox_exports2.Optional(statusSchema),
169171
+ statusReason: typebox_exports2.Optional(reasonSchema),
169172
+ resources: typebox_exports2.Optional(resourcesSchema),
169173
+ ...depth < WORK_PLAN_CREATE_MAX_DEPTH ? { subtasks: typebox_exports2.Optional(typebox_exports2.Array(creationTaskSchema(depth + 1), {
169174
+ maxItems: WORK_PLAN_LIMITS.tasks,
169175
+ description: `Direct subtasks only; the complete plan may contain at most ${WORK_PLAN_LIMITS.tasks} tasks.`
169176
+ })) } : {}
169177
+ }, objectOptions);
169178
+ var taskChangesSchema = typebox_exports2.Object({
169179
+ title: typebox_exports2.Optional(titleSchema),
169180
+ description: typebox_exports2.Optional(typebox_exports2.Union([descriptionSchema, typebox_exports2.Null()])),
169181
+ status: typebox_exports2.Optional(statusSchema),
169182
+ statusReason: typebox_exports2.Optional(typebox_exports2.Union([reasonSchema, typebox_exports2.Null()])),
169183
+ parentId: typebox_exports2.Optional(typebox_exports2.Union([identifierSchema, typebox_exports2.Null()])),
169184
+ dependsOn: typebox_exports2.Optional(dependenciesSchema),
169185
+ resources: typebox_exports2.Optional(resourcesSchema)
169186
+ }, objectOptions);
169187
+ var workPlanParameters = typebox_exports2.Union([
169188
+ typebox_exports2.Object({ action: typebox_exports2.Literal("get") }, objectOptions),
169189
+ typebox_exports2.Object({ action: typebox_exports2.Literal("clear") }, objectOptions),
169190
+ typebox_exports2.Object({
169191
+ action: typebox_exports2.Literal("create"),
169192
+ title: titleSchema,
169193
+ tasks: typebox_exports2.Array(creationTaskSchema(1), {
169194
+ maxItems: WORK_PLAN_LIMITS.tasks,
169195
+ description: `Top-level tasks; at most ${WORK_PLAN_LIMITS.tasks} tasks total and ${WORK_PLAN_LIMITS.serializedBytes} serialized bytes across the complete plan.`
169196
+ })
169197
+ }, objectOptions),
169198
+ typebox_exports2.Object({ action: typebox_exports2.Literal("replace"), plan: normalizedPlanSchema }, objectOptions),
169199
+ typebox_exports2.Object({ action: typebox_exports2.Literal("add_task"), task: normalizedTaskSchema }, objectOptions),
169200
+ typebox_exports2.Object({ action: typebox_exports2.Literal("update_task"), taskId: identifierSchema, changes: taskChangesSchema }, objectOptions),
169201
+ typebox_exports2.Object({ action: typebox_exports2.Literal("move_task"), taskId: identifierSchema, parentId: typebox_exports2.Optional(typebox_exports2.Union([identifierSchema, typebox_exports2.Null()])) }, objectOptions),
169202
+ typebox_exports2.Object({ action: typebox_exports2.Literal("remove_task"), taskId: identifierSchema }, objectOptions),
169203
+ typebox_exports2.Object({ action: typebox_exports2.Literal("set_dependencies"), taskId: identifierSchema, dependsOn: dependenciesSchema }, objectOptions),
169204
+ typebox_exports2.Object({ action: typebox_exports2.Literal("set_resources"), taskId: identifierSchema, resources: resourcesSchema }, objectOptions)
169205
+ ]);
169069
169206
  function createWorkPlanToolDefinition() {
169070
169207
  return {
169071
169208
  name: "work_plan",
169072
169209
  label: "Work Plan",
169073
- description: "Read or atomically update the persistent Work Plan for this session. It is the agent's explicit working-state representation, not merely progress reporting: use it to drive systematic decomposition, execution tracking, and verification. Use human-readable outcomes, not tool mechanics. Create a plan only for non-trivial work that benefits from explicit decomposition; refine it as understanding changes. On a resumed session, call action=get before continuing substantial work, and reconcile the plan before declaring that work complete.",
169210
+ description: "Read or atomically update the persistent Work Plan for this session. Use create for a compact two-level task hierarchy (500 tasks total, 64 KiB normalized plan) whose tasks need only a title, replace for a complete normalized version-1 document, and the task operations for precise later mutations.",
169074
169211
  promptSnippet: "Create, inspect, and update the session's persistent Work Plan",
169075
- promptGuidelines: [
169076
- "Use work_plan for substantial multi-step work; keep it current when work is discovered, blocked, reopened, completed, or needs review.",
169077
- "Treat the Work Plan as working state that guides decomposition, execution, and verification\u2014not as a retrospective progress report. Reconcile it before declaring non-trivial work complete.",
169078
- "The plan describes objectives and outcomes, not tool calls. Do not create one for trivial interactions."
169079
- ],
169080
- parameters: parameters7,
169212
+ parameters: workPlanParameters,
169081
169213
  executionMode: "sequential",
169082
169214
  async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
169083
169215
  const mutation = params;
@@ -169090,7 +169222,7 @@ function createWorkPlanToolDefinition() {
169090
169222
  // `details` drives authoritative UI synchronization but is not model
169091
169223
  // context. A resumed agent must receive the complete working state in
169092
169224
  // content; otherwise post-compaction `get` would expose only a counter.
169093
- content: [{ type: "text", text: action === "get" && plan !== null ? `${summary}
169225
+ content: [{ type: "text", text: (action === "get" || action === "create") && plan !== null ? `${summary}
169094
169226
  ${JSON.stringify(plan)}` : summary }],
169095
169227
  details: { type: "work_plan", sessionFile, plan, changed: action !== "get" }
169096
169228
  };
@@ -170749,6 +170881,31 @@ async function gitShow(root, sha) {
170749
170881
  return { patch: out, truncated: false };
170750
170882
  }
170751
170883
 
170884
+ // ../server/src/systemPrompt.ts
170885
+ var WEB_UI_CONTEXT = [
170886
+ "You are running inside pi-outpost, a web chat UI \u2014 not a terminal.",
170887
+ "Replies render as markdown with syntax-highlighted code, LaTeX math and mermaid diagrams.",
170888
+ "When a user message contains @some/path, the user picked that file or directory in the UI's file browser: it exists, relative to your working directory. Use it directly \u2014 never search for it.",
170889
+ "Workspace files can be referenced with relative markdown links, e.g. [report](./report.md) \u2014 clicking one opens the file in the UI's viewer/editor.",
170890
+ "Images in the workspace (including ones you create) display inline in the conversation when referenced with a relative path: ![plot](./plot.png). Prefer showing an image that way over describing it.",
170891
+ "Avoid terminal-only affordances: no 'open this file in your editor' or 'run this command to view' phrasing, no ASCII art where a mermaid diagram or an image file works better."
170892
+ ].join("\n");
170893
+ var WORK_PLAN_SYSTEM_GUIDANCE = [
170894
+ "Use work_plan as explicit working state for non-trivial multi-step work: create and maintain it as understanding or execution changes.",
170895
+ "Before resuming substantial work, read the current plan; reconcile it before declaring the work complete.",
170896
+ "Skip a Work Plan for trivial interactions."
170897
+ ].join(" ");
170898
+ function workPlanIsAvailable(config2) {
170899
+ return config2.sandbox !== void 0 || config2.tools === void 0 || config2.tools.includes("work_plan");
170900
+ }
170901
+ function composeAppendSystemPrompt(config2) {
170902
+ return [
170903
+ ...config2.webContext ? [WEB_UI_CONTEXT] : [],
170904
+ ...workPlanIsAvailable(config2) ? [WORK_PLAN_SYSTEM_GUIDANCE] : [],
170905
+ ...config2.appendSystemPrompt
170906
+ ];
170907
+ }
170908
+
170752
170909
  // ../server/src/fileWatcher.ts
170753
170910
  import fsSync from "node:fs";
170754
170911
  var MAX_WATCHED_DIRECTORIES = 256;
@@ -171022,7 +171179,7 @@ var EMBEDDED_WEB = {
171022
171179
  };
171023
171180
 
171024
171181
  // ../server/src/index.ts
171025
- var VERSION2 = true ? "0.14.0" : "dev";
171182
+ var VERSION2 = true ? "0.15.0" : "dev";
171026
171183
  var PI_SDK_VERSION = true ? "0.84.1" : "dev";
171027
171184
  var LAUNCH_DIR = process.env.INIT_CWD ?? process.cwd();
171028
171185
  function complain(error) {
@@ -171393,14 +171550,6 @@ await app.listen({ port: PORT, host: HOST });
171393
171550
  }, 0);
171394
171551
  noticeTimer.unref?.();
171395
171552
  }
171396
- var WEB_UI_CONTEXT = [
171397
- "You are running inside pi-outpost, a web chat UI \u2014 not a terminal.",
171398
- "Replies render as markdown with syntax-highlighted code, LaTeX math and mermaid diagrams.",
171399
- "When a user message contains @some/path, the user picked that file or directory in the UI's file browser: it exists, relative to your working directory. Use it directly \u2014 never search for it.",
171400
- "Workspace files can be referenced with relative markdown links, e.g. [report](./report.md) \u2014 clicking one opens the file in the UI's viewer/editor.",
171401
- "Images in the workspace (including ones you create) display inline in the conversation when referenced with a relative path: ![plot](./plot.png). Prefer showing an image that way over describing it.",
171402
- "Avoid terminal-only affordances: no 'open this file in your editor' or 'run this command to view' phrasing, no ASCII art where a mermaid diagram or an image file works better."
171403
- ].join("\n");
171404
171553
  var DEBUG = process.env.PI_OUTPOST_DEBUG ? console.log : () => {
171405
171554
  };
171406
171555
  var createRuntime = async ({
@@ -171408,10 +171557,7 @@ var createRuntime = async ({
171408
171557
  sessionManager,
171409
171558
  sessionStartEvent
171410
171559
  }) => {
171411
- const appendSystemPrompt = [
171412
- ...config.webContext ? [WEB_UI_CONTEXT] : [],
171413
- ...config.appendSystemPrompt
171414
- ];
171560
+ const appendSystemPrompt = composeAppendSystemPrompt(config);
171415
171561
  const extraFactories = [...seaExtensionFactories];
171416
171562
  const allExtPaths = [
171417
171563
  ...config.extensionPaths,
@@ -171523,7 +171669,7 @@ var runtime = await (async () => {
171523
171669
  resourceArgs: [
171524
171670
  ...rpcResourceArgs(config, {
171525
171671
  bundledSkills: config.noSkills ? [] : BUNDLED_SKILLS,
171526
- appendSystemPrompt: [...config.webContext ? [WEB_UI_CONTEXT] : [], ...config.appendSystemPrompt]
171672
+ appendSystemPrompt: composeAppendSystemPrompt(config)
171527
171673
  }),
171528
171674
  "--extension",
171529
171675
  toolsExtension