@michelangelo-ai/core 0.9.0 → 0.10.0-rc.1

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.
Files changed (133) hide show
  1. package/dist/components/actions/types.d.ts +14 -1
  2. package/dist/components/actions/types.d.ts.map +1 -1
  3. package/dist/components/box/collapsible-box.d.ts.map +1 -1
  4. package/dist/components/form/fields/select/select-field.d.ts +1 -1
  5. package/dist/components/form/fields/select/select-field.d.ts.map +1 -1
  6. package/dist/components/form/fields/select/types.d.ts +9 -0
  7. package/dist/components/form/fields/select/types.d.ts.map +1 -1
  8. package/dist/components/form/fields/string/components/single-string-field.d.ts +1 -1
  9. package/dist/components/form/fields/string/components/single-string-field.d.ts.map +1 -1
  10. package/dist/components/form/fields/string/types.d.ts +6 -0
  11. package/dist/components/form/fields/string/types.d.ts.map +1 -1
  12. package/dist/components/row/components/row-item.d.ts.map +1 -1
  13. package/dist/components/text-editor/text-editor.d.ts +1 -1
  14. package/dist/components/text-editor/text-editor.d.ts.map +1 -1
  15. package/dist/components/text-editor/types.d.ts +5 -0
  16. package/dist/components/text-editor/types.d.ts.map +1 -1
  17. package/dist/components/views/phase-entity-view/entity-table.d.ts +1 -1
  18. package/dist/components/views/phase-entity-view/entity-table.d.ts.map +1 -1
  19. package/dist/components/views/phase-entity-view/phase-entity-view.d.ts.map +1 -1
  20. package/dist/components/views/phase-entity-view/types.d.ts +3 -0
  21. package/dist/components/views/phase-entity-view/types.d.ts.map +1 -1
  22. package/dist/components/views/phase-entity-view/utils/__tests__/inject-list-options.test.d.ts +2 -0
  23. package/dist/components/views/phase-entity-view/utils/__tests__/inject-list-options.test.d.ts.map +1 -0
  24. package/dist/components/views/phase-entity-view/utils/inject-list-options.d.ts +0 -4
  25. package/dist/components/views/phase-entity-view/utils/inject-list-options.d.ts.map +1 -1
  26. package/dist/components/views/project/components/phase-card.d.ts.map +1 -1
  27. package/dist/components/views/project/constants.d.ts +4 -1
  28. package/dist/components/views/project/constants.d.ts.map +1 -1
  29. package/dist/components/views/project/project-list.d.ts.map +1 -1
  30. package/dist/components/views/project/types.d.ts +12 -0
  31. package/dist/components/views/project/types.d.ts.map +1 -0
  32. package/dist/config/entities/deployment/create-deployment-form.d.ts +3 -0
  33. package/dist/config/entities/deployment/create-deployment-form.d.ts.map +1 -0
  34. package/dist/config/entities/deployment/deployment-revision-card-field.d.ts +7 -0
  35. package/dist/config/entities/deployment/deployment-revision-card-field.d.ts.map +1 -0
  36. package/dist/config/entities/deployment/deployment-revision-card.d.ts +3 -3
  37. package/dist/config/entities/deployment/deployment-revision-card.d.ts.map +1 -1
  38. package/dist/config/entities/deployment/deployment.d.ts.map +1 -1
  39. package/dist/config/entities/deployment/model-family-revision-fields.d.ts +10 -0
  40. package/dist/config/entities/deployment/model-family-revision-fields.d.ts.map +1 -0
  41. package/dist/config/entities/deployment/types.d.ts +62 -0
  42. package/dist/config/entities/deployment/types.d.ts.map +1 -1
  43. package/dist/config/entities/model/__tests__/model-detail-page.test.d.ts +2 -0
  44. package/dist/config/entities/model/__tests__/model-detail-page.test.d.ts.map +1 -0
  45. package/dist/config/entities/model/detail.d.ts +3 -0
  46. package/dist/config/entities/model/detail.d.ts.map +1 -0
  47. package/dist/config/entities/model/model-info-page.d.ts +5 -0
  48. package/dist/config/entities/model/model-info-page.d.ts.map +1 -0
  49. package/dist/config/entities/model/model.d.ts.map +1 -1
  50. package/dist/config/entities/model/types.d.ts +34 -0
  51. package/dist/config/entities/model/types.d.ts.map +1 -0
  52. package/dist/config/entities/pipeline/__tests__/format-trigger-schedule.test.d.ts +2 -0
  53. package/dist/config/entities/pipeline/__tests__/format-trigger-schedule.test.d.ts.map +1 -0
  54. package/dist/config/entities/pipeline/__tests__/run-trigger-form.test.d.ts +2 -0
  55. package/dist/config/entities/pipeline/__tests__/run-trigger-form.test.d.ts.map +1 -0
  56. package/dist/config/entities/pipeline/create-pipeline-run-form.d.ts +7 -0
  57. package/dist/config/entities/pipeline/create-pipeline-run-form.d.ts.map +1 -1
  58. package/dist/config/entities/pipeline/detail.d.ts.map +1 -1
  59. package/dist/config/entities/pipeline/format-trigger-schedule.d.ts +10 -0
  60. package/dist/config/entities/pipeline/format-trigger-schedule.d.ts.map +1 -0
  61. package/dist/config/entities/pipeline/pipeline.d.ts.map +1 -1
  62. package/dist/config/entities/pipeline/resume-run-fields.d.ts +16 -0
  63. package/dist/config/entities/pipeline/resume-run-fields.d.ts.map +1 -0
  64. package/dist/config/entities/pipeline/resume-step-option.d.ts +12 -0
  65. package/dist/config/entities/pipeline/resume-step-option.d.ts.map +1 -0
  66. package/dist/config/entities/pipeline/run-trigger-fields.d.ts +15 -0
  67. package/dist/config/entities/pipeline/run-trigger-fields.d.ts.map +1 -0
  68. package/dist/config/entities/pipeline/run-trigger-form.d.ts +13 -0
  69. package/dist/config/entities/pipeline/run-trigger-form.d.ts.map +1 -0
  70. package/dist/config/entities/pipeline/shared.d.ts +4 -0
  71. package/dist/config/entities/pipeline/shared.d.ts.map +1 -1
  72. package/dist/config/entities/pipeline/types.d.ts +39 -0
  73. package/dist/config/entities/pipeline/types.d.ts.map +1 -1
  74. package/dist/config/entities/pipeline/utils/validate-emails.d.ts +3 -0
  75. package/dist/config/entities/pipeline/utils/validate-emails.d.ts.map +1 -0
  76. package/dist/config/entities/run/__tests__/run-page.test.d.ts +2 -0
  77. package/dist/config/entities/run/__tests__/run-page.test.d.ts.map +1 -0
  78. package/dist/config/entities/run/__tests__/run-retry-action.test.d.ts +2 -0
  79. package/dist/config/entities/run/__tests__/run-retry-action.test.d.ts.map +1 -0
  80. package/dist/config/entities/run/__tests__/run-triggered-by.test.d.ts +2 -0
  81. package/dist/config/entities/run/__tests__/run-triggered-by.test.d.ts.map +1 -0
  82. package/dist/config/entities/run/__tests__/run.test.d.ts +2 -0
  83. package/dist/config/entities/run/__tests__/run.test.d.ts.map +1 -0
  84. package/dist/config/entities/run/detail.d.ts.map +1 -1
  85. package/dist/config/entities/run/list.d.ts.map +1 -1
  86. package/dist/config/entities/run/run-configuration-page.d.ts +5 -0
  87. package/dist/config/entities/run/run-configuration-page.d.ts.map +1 -0
  88. package/dist/config/entities/run/run-info-page.d.ts +5 -0
  89. package/dist/config/entities/run/run-info-page.d.ts.map +1 -0
  90. package/dist/config/entities/run/run.d.ts.map +1 -1
  91. package/dist/config/entities/run/shared.d.ts +43 -0
  92. package/dist/config/entities/run/shared.d.ts.map +1 -1
  93. package/dist/config/entities/run/types.d.ts +157 -0
  94. package/dist/config/entities/run/types.d.ts.map +1 -1
  95. package/dist/config/entities/targets/create-inference-server-form.d.ts +3 -0
  96. package/dist/config/entities/targets/create-inference-server-form.d.ts.map +1 -0
  97. package/dist/config/entities/targets/inference-server-owner-fields.d.ts +6 -0
  98. package/dist/config/entities/targets/inference-server-owner-fields.d.ts.map +1 -0
  99. package/dist/config/entities/targets/shared.d.ts +17 -0
  100. package/dist/config/entities/targets/shared.d.ts.map +1 -1
  101. package/dist/config/entities/targets/target.d.ts.map +1 -1
  102. package/dist/config/entities/targets/types.d.ts +32 -0
  103. package/dist/config/entities/targets/types.d.ts.map +1 -0
  104. package/dist/config/entities/trigger/__tests__/trigger-recent-runs.test.d.ts +2 -0
  105. package/dist/config/entities/trigger/__tests__/trigger-recent-runs.test.d.ts.map +1 -0
  106. package/dist/config/entities/trigger/detail.d.ts.map +1 -1
  107. package/dist/config/entities/trigger/types.d.ts +77 -0
  108. package/dist/config/entities/trigger/types.d.ts.map +1 -1
  109. package/dist/config/phases/deploy.d.ts.map +1 -1
  110. package/dist/michelangelo-core.cjs +16 -16
  111. package/dist/michelangelo-core.js +10915 -9636
  112. package/dist/primitives.cjs +1 -1
  113. package/dist/primitives.js +23 -23
  114. package/dist/providers/service-provider/__tests__/service-provider.tests.d.ts +2 -0
  115. package/dist/providers/service-provider/__tests__/service-provider.tests.d.ts.map +1 -0
  116. package/dist/providers/service-provider/service-provider.d.ts +1 -1
  117. package/dist/providers/service-provider/service-provider.d.ts.map +1 -1
  118. package/dist/providers/service-provider/types.d.ts +23 -0
  119. package/dist/providers/service-provider/types.d.ts.map +1 -1
  120. package/dist/providers/service-provider/with-ownership-enrichment.d.ts +9 -0
  121. package/dist/providers/service-provider/with-ownership-enrichment.d.ts.map +1 -0
  122. package/dist/{theme-provider-Ba4vmtVx.js → theme-provider-BLwt8TXI.js} +1937 -1889
  123. package/dist/{theme-provider-H-LNQYdH.cjs → theme-provider-OUbecRuK.cjs} +93 -93
  124. package/dist/tsconfig.tsbuildinfo +1 -1
  125. package/dist/types/common/studio-types.d.ts +6 -1
  126. package/dist/types/common/studio-types.d.ts.map +1 -1
  127. package/dist/utils/crd-utils.d.ts +36 -0
  128. package/dist/utils/crd-utils.d.ts.map +1 -1
  129. package/dist/utils/environment-utils.d.ts +1 -0
  130. package/dist/utils/environment-utils.d.ts.map +1 -1
  131. package/dist/utils/time-utils.d.ts +11 -0
  132. package/dist/utils/time-utils.d.ts.map +1 -1
  133. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import type { ActionConfigSchema } from '../../components/actions/types';
1
+ import type { ActionConfigSchema, CreateActionConfig } from '../../components/actions/types';
2
2
  import type { ViewConfig } from '../../components/views/types';
3
3
  import type { QueryConfig } from '../../types/query-types';
4
4
  /**
@@ -103,6 +103,11 @@ export interface PhaseEntityConfig<T extends object = object> {
103
103
  * Rendered in table rows for list views.
104
104
  */
105
105
  actions?: ActionConfigSchema<T>[];
106
+ /**
107
+ * Optional page-level action to create a new record for this entity.
108
+ * Rendered as a button in the phase header when this entity's tab is active.
109
+ */
110
+ createAction?: CreateActionConfig;
106
111
  }
107
112
  /**
108
113
  * Simplified phase configuration matching the original studio config structure
@@ -1 +1 @@
1
- {"version":3,"file":"studio-types.d.ts","sourceRoot":"","sources":["../../../types/common/studio-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,oBAAY,KAAK;IACf,oDAAoD;IACpD,OAAO,YAAY;IACnB,8BAA8B;IAC9B,UAAU,eAAe;IACzB,2BAA2B;IAC3B,MAAM,WAAW;IAEjB,+CAA+C;IAC/C,IAAI,SAAS;IACb,mCAAmC;IACnC,KAAK,UAAU;IACf,6CAA6C;IAC7C,OAAO,YAAY;IACnB,yCAAyC;IACzC,MAAM,WAAW;IACjB,sDAAsD;IACtD,OAAO,YAAY;IAEnB,8DAA8D;IAC9D,QAAQ,cAAc;IACtB,gDAAgD;IAChD,SAAS,eAAe;IACxB,wCAAwC;IACxC,WAAW,iBAAiB;IAC5B,0CAA0C;IAC1C,aAAa,mBAAmB;IAChC,oDAAoD;IACpD,YAAY,kBAAkB;IAE9B,qDAAqD;IACrD,SAAS,eAAe;IACxB,2CAA2C;IAC3C,YAAY,kBAAkB;IAC9B,yCAAyC;IACzC,WAAW,iBAAiB;IAC5B,sDAAsD;IACtD,YAAY,kBAAkB;CAC/B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;OAaG;IACH,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,2DAA2D;IAC3D,KAAK,EAAE,gBAAgB,CAAC;IACxB,kDAAkD;IAClD,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,EAAE,UAAU,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,QAAQ,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;AAErF,MAAM,MAAM,UAAU,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"studio-types.d.ts","sourceRoot":"","sources":["../../../types/common/studio-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,oBAAY,KAAK;IACf,oDAAoD;IACpD,OAAO,YAAY;IACnB,8BAA8B;IAC9B,UAAU,eAAe;IACzB,2BAA2B;IAC3B,MAAM,WAAW;IAEjB,+CAA+C;IAC/C,IAAI,SAAS;IACb,mCAAmC;IACnC,KAAK,UAAU;IACf,6CAA6C;IAC7C,OAAO,YAAY;IACnB,yCAAyC;IACzC,MAAM,WAAW;IACjB,sDAAsD;IACtD,OAAO,YAAY;IAEnB,8DAA8D;IAC9D,QAAQ,cAAc;IACtB,gDAAgD;IAChD,SAAS,eAAe;IACxB,wCAAwC;IACxC,WAAW,iBAAiB;IAC5B,0CAA0C;IAC1C,aAAa,mBAAmB;IAChC,oDAAoD;IACpD,YAAY,kBAAkB;IAE9B,qDAAqD;IACrD,SAAS,eAAe;IACxB,2CAA2C;IAC3C,YAAY,kBAAkB;IAC9B,yCAAyC;IACzC,WAAW,iBAAiB;IAC5B,sDAAsD;IACtD,YAAY,kBAAkB;CAC/B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;OAaG;IACH,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,2DAA2D;IAC3D,KAAK,EAAE,gBAAgB,CAAC;IACxB,kDAAkD;IAClD,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,EAAE,UAAU,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,QAAQ,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;AAErF,MAAM,MAAM,UAAU,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,SAAS,CAAC"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Naming rules for CRD-backed entities, per Kubernetes RFC 1123 label names
3
+ * (metadata.name): lowercase alphanumerics and '-', starting and ending with
4
+ * an alphanumeric, at most 63 characters.
5
+ */
6
+ export declare const K8S_NAME_MAX_LENGTH = 63;
7
+ export declare const K8S_NAME_PATTERN: RegExp;
8
+ export declare const K8S_NAME_RULES_MESSAGE = "Must only contain lowercase alphanumeric characters, '-', and must start and end with an alphanumeric character";
1
9
  /**
2
10
  * Resolves the epoch-seconds timestamp to display as an entity's "last updated" time.
3
11
  *
@@ -29,4 +37,32 @@ export declare function getCrdUpdatedSeconds(data: {
29
37
  };
30
38
  };
31
39
  }): number | undefined;
40
+ /**
41
+ * Resolves the epoch-seconds timestamp to display as an entity's "last updated" time,
42
+ * counting any update — not just a spec change — unlike {@link getCrdUpdatedSeconds}.
43
+ *
44
+ * Some CRD-backed entities (e.g. a pipeline run) have a `status` that changes continuously
45
+ * while their `spec` is effectively immutable after creation. For those, `getCrdUpdatedSeconds`'s
46
+ * spec-only label would render a value frozen at creation time for nearly every row, which
47
+ * defeats the point of a "last updated" column. This instead reads the `michelangelo/UpdateTimestamp`
48
+ * metadata label, which the apiserver refreshes on every update to the resource, with the same
49
+ * `metadata.creationTimestamp` fallback for rows that predate the label or have never been updated.
50
+ *
51
+ * @example
52
+ * getCrdLastUpdatedSeconds({
53
+ * metadata: { labels: { 'michelangelo/UpdateTimestamp': '1700000000000000' } },
54
+ * }) // 1700000000
55
+ *
56
+ * getCrdLastUpdatedSeconds({
57
+ * metadata: { creationTimestamp: { seconds: 1650000000 } },
58
+ * }) // 1650000000 (label absent, falls back to creation time)
59
+ */
60
+ export declare function getCrdLastUpdatedSeconds(data: {
61
+ metadata?: {
62
+ labels?: Record<string, string>;
63
+ creationTimestamp?: {
64
+ seconds: number;
65
+ };
66
+ };
67
+ }): number | undefined;
32
68
  //# sourceMappingURL=crd-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crd-utils.d.ts","sourceRoot":"","sources":["../../utils/crd-utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,iBAAiB,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACzF,GAAG,MAAM,GAAG,SAAS,CAIrB"}
1
+ {"version":3,"file":"crd-utils.d.ts","sourceRoot":"","sources":["../../utils/crd-utils.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,gBAAgB,QAAoC,CAAC;AAClE,eAAO,MAAM,sBAAsB,oHACgF,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,iBAAiB,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACzF,GAAG,MAAM,GAAG,SAAS,CAIrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,iBAAiB,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACzF,GAAG,MAAM,GAAG,SAAS,CAIrB"}
@@ -1,3 +1,4 @@
1
+ export declare const ENVIRONMENT_LABEL_KEY = "michelangelo/environment";
1
2
  /**
2
3
  * Reads the CRD environment label and returns a human-readable environment name.
3
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"environment-utils.d.ts","sourceRoot":"","sources":["../../utils/environment-utils.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,EAAE,CAI/C"}
1
+ {"version":3,"file":"environment-utils.d.ts","sourceRoot":"","sources":["../../utils/environment-utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAQhE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,EAAE,CAI/C"}
@@ -21,6 +21,17 @@ export declare function getDateFromEpochSeconds(epochSeconds: number): Date;
21
21
  * @returns Unix timestamp in seconds
22
22
  */
23
23
  export declare function getEpochSecondsFromDate(date: Date): number;
24
+ /**
25
+ * Formats the elapsed time between two epoch-second timestamps.
26
+ *
27
+ * Returns null when either bound is missing — a step that has not started, or one
28
+ * still running — so callers can render their own placeholder.
29
+ *
30
+ * @example
31
+ * formatElapsedSeconds('1720656638', '1720656690') // "52s"
32
+ * formatElapsedSeconds('1720656638', undefined) // null
33
+ */
34
+ export declare function formatElapsedSeconds(startSeconds?: string | number, endSeconds?: string | number): string | null;
24
35
  /**
25
36
  * Parses an ISO string into date and time components.
26
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"time-utils.d.ts","sourceRoot":"","sources":["../../utils/time-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAC9B,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,GAAG,IAAI,CAkCf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYvF"}
1
+ {"version":3,"file":"time-utils.d.ts","sourceRoot":"","sources":["../../utils/time-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAC9B,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,GAAG,IAAI,CAkCf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAElE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,MAAM,GAAG,IAAI,CAaf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYvF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@michelangelo-ai/core",
3
3
  "license": "Apache-2.0",
4
- "version": "0.9.0",
4
+ "version": "0.10.0-rc.1",
5
5
  "type": "module",
6
6
  "main": "./dist/michelangelo-core.js",
7
7
  "module": "./dist/michelangelo-core.js",
@@ -46,7 +46,7 @@
46
46
  "@types/react-router": "^5.1.20",
47
47
  "@types/validator": "^13.15.1",
48
48
  "@vitejs/plugin-react": "^4.4.1",
49
- "jsdom": "^26.1.0",
49
+ "happy-dom": "^20.10.6",
50
50
  "tsc-alias": "^1.8.16",
51
51
  "vitest": "^3.1.1"
52
52
  },