@shipfox/api-definitions 10.2.0 → 12.0.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.
Files changed (150) hide show
  1. package/.turbo/turbo-build.log +13 -12
  2. package/CHANGELOG.md +91 -0
  3. package/dist/core/entities/index.d.ts +1 -0
  4. package/dist/core/entities/index.d.ts.map +1 -1
  5. package/dist/core/entities/index.js +1 -0
  6. package/dist/core/entities/index.js.map +1 -1
  7. package/dist/core/entities/sync-state.d.ts +4 -0
  8. package/dist/core/entities/sync-state.d.ts.map +1 -1
  9. package/dist/core/entities/sync-state.js +10 -0
  10. package/dist/core/entities/sync-state.js.map +1 -1
  11. package/dist/core/entities/validation-warning.d.ts +6 -0
  12. package/dist/core/entities/validation-warning.d.ts.map +1 -0
  13. package/dist/core/entities/validation-warning.js +3 -0
  14. package/dist/core/entities/validation-warning.js.map +1 -0
  15. package/dist/core/parse-definition.d.ts +9 -7
  16. package/dist/core/parse-definition.d.ts.map +1 -1
  17. package/dist/core/parse-definition.js +14 -2
  18. package/dist/core/parse-definition.js.map +1 -1
  19. package/dist/core/sync-definitions.d.ts +2 -0
  20. package/dist/core/sync-definitions.d.ts.map +1 -1
  21. package/dist/core/sync-definitions.js +6 -5
  22. package/dist/core/sync-definitions.js.map +1 -1
  23. package/dist/core/validate-definition.d.ts +9 -5
  24. package/dist/core/validate-definition.d.ts.map +1 -1
  25. package/dist/core/validate-definition.js +23 -2
  26. package/dist/core/validate-definition.js.map +1 -1
  27. package/dist/core/workflow-model/index.d.ts +1 -1
  28. package/dist/core/workflow-model/index.d.ts.map +1 -1
  29. package/dist/core/workflow-model/index.js.map +1 -1
  30. package/dist/core/workflow-model/invalid-workflow-model-error.d.ts +3 -1
  31. package/dist/core/workflow-model/invalid-workflow-model-error.d.ts.map +1 -1
  32. package/dist/core/workflow-model/invalid-workflow-model-error.js.map +1 -1
  33. package/dist/core/workflow-model/normalize-if-condition.d.ts +0 -1
  34. package/dist/core/workflow-model/normalize-if-condition.d.ts.map +1 -1
  35. package/dist/core/workflow-model/normalize-if-condition.js +0 -1
  36. package/dist/core/workflow-model/normalize-if-condition.js.map +1 -1
  37. package/dist/core/workflow-model/normalize-job-checkout.d.ts +15 -3
  38. package/dist/core/workflow-model/normalize-job-checkout.d.ts.map +1 -1
  39. package/dist/core/workflow-model/normalize-job-checkout.js +83 -4
  40. package/dist/core/workflow-model/normalize-job-checkout.js.map +1 -1
  41. package/dist/core/workflow-model/normalize-job-listening.js +0 -1
  42. package/dist/core/workflow-model/normalize-job-listening.js.map +1 -1
  43. package/dist/core/workflow-model/normalize-job-success.d.ts.map +1 -1
  44. package/dist/core/workflow-model/normalize-job-success.js +0 -1
  45. package/dist/core/workflow-model/normalize-job-success.js.map +1 -1
  46. package/dist/core/workflow-model/normalize-jobs.d.ts.map +1 -1
  47. package/dist/core/workflow-model/normalize-jobs.js +310 -45
  48. package/dist/core/workflow-model/normalize-jobs.js.map +1 -1
  49. package/dist/core/workflow-model/normalize-step-gate.js +0 -1
  50. package/dist/core/workflow-model/normalize-step-gate.js.map +1 -1
  51. package/dist/core/workflow-model/normalize-triggers.d.ts.map +1 -1
  52. package/dist/core/workflow-model/normalize-triggers.js +0 -1
  53. package/dist/core/workflow-model/normalize-triggers.js.map +1 -1
  54. package/dist/core/workflow-model/normalize-workflow-document.d.ts +3 -0
  55. package/dist/core/workflow-model/normalize-workflow-document.d.ts.map +1 -1
  56. package/dist/core/workflow-model/normalize-workflow-document.js +34 -4
  57. package/dist/core/workflow-model/normalize-workflow-document.js.map +1 -1
  58. package/dist/core/workflow-model/parse-interpolation-field.d.ts +1 -1
  59. package/dist/core/workflow-model/parse-interpolation-field.d.ts.map +1 -1
  60. package/dist/core/workflow-model/parse-interpolation-field.js +27 -57
  61. package/dist/core/workflow-model/parse-interpolation-field.js.map +1 -1
  62. package/dist/core/workflow-model/validate-literal-name.d.ts +12 -0
  63. package/dist/core/workflow-model/validate-literal-name.d.ts.map +1 -0
  64. package/dist/core/workflow-model/validate-literal-name.js +36 -0
  65. package/dist/core/workflow-model/validate-literal-name.js.map +1 -0
  66. package/dist/core/workflow-model/validate-predicate-expression.d.ts +1 -2
  67. package/dist/core/workflow-model/validate-predicate-expression.d.ts.map +1 -1
  68. package/dist/core/workflow-model/validate-predicate-expression.js +31 -90
  69. package/dist/core/workflow-model/validate-predicate-expression.js.map +1 -1
  70. package/dist/core/workflow-model/validation-issue.d.ts +2 -1
  71. package/dist/core/workflow-model/validation-issue.d.ts.map +1 -1
  72. package/dist/core/workflow-model/validation-issue.js +8 -2
  73. package/dist/core/workflow-model/validation-issue.js.map +1 -1
  74. package/dist/core/workflow-model/workflow-field-label.d.ts.map +1 -1
  75. package/dist/core/workflow-model/workflow-field-label.js +16 -2
  76. package/dist/core/workflow-model/workflow-field-label.js.map +1 -1
  77. package/dist/db/db.d.ts +38 -0
  78. package/dist/db/db.d.ts.map +1 -1
  79. package/dist/db/schema/sync-states.d.ts +19 -0
  80. package/dist/db/schema/sync-states.d.ts.map +1 -1
  81. package/dist/db/schema/sync-states.js +3 -1
  82. package/dist/db/schema/sync-states.js.map +1 -1
  83. package/dist/db/sync-states.d.ts +2 -1
  84. package/dist/db/sync-states.d.ts.map +1 -1
  85. package/dist/db/sync-states.js +4 -0
  86. package/dist/db/sync-states.js.map +1 -1
  87. package/dist/presentation/dto/definition.d.ts.map +1 -1
  88. package/dist/presentation/dto/definition.js +2 -1
  89. package/dist/presentation/dto/definition.js.map +1 -1
  90. package/dist/presentation/routes/project-access.d.ts +1 -0
  91. package/dist/presentation/routes/project-access.d.ts.map +1 -1
  92. package/dist/presentation/routes/validate-definition.d.ts.map +1 -1
  93. package/dist/presentation/routes/validate-definition.js +5 -3
  94. package/dist/presentation/routes/validate-definition.js.map +1 -1
  95. package/dist/temporal/activities/sync-activities.d.ts +6 -2
  96. package/dist/temporal/activities/sync-activities.d.ts.map +1 -1
  97. package/dist/temporal/activities/sync-activities.js +8 -1
  98. package/dist/temporal/activities/sync-activities.js.map +1 -1
  99. package/dist/temporal/workflows/definition-sync.js +4 -1
  100. package/dist/temporal/workflows/definition-sync.js.map +1 -1
  101. package/dist/temporal/workflows/index.bundle.js +9029 -3
  102. package/dist/tsconfig.test.tsbuildinfo +1 -1
  103. package/drizzle/0002_lumpy_ben_parker.sql +1 -0
  104. package/drizzle/meta/0002_snapshot.json +534 -0
  105. package/drizzle/meta/_journal.json +7 -0
  106. package/package.json +14 -14
  107. package/src/core/entities/index.ts +1 -0
  108. package/src/core/entities/sync-state.ts +23 -0
  109. package/src/core/entities/validation-warning.ts +5 -0
  110. package/src/core/parse-definition-warnings.test.ts +33 -0
  111. package/src/core/parse-definition.test.ts +7 -1
  112. package/src/core/parse-definition.ts +28 -10
  113. package/src/core/sync-definitions.test.ts +39 -0
  114. package/src/core/sync-definitions.ts +14 -4
  115. package/src/core/validate-definition.test.ts +128 -0
  116. package/src/core/validate-definition.ts +39 -8
  117. package/src/core/workflow-model/README.md +2 -2
  118. package/src/core/workflow-model/index.ts +1 -0
  119. package/src/core/workflow-model/invalid-workflow-model-error.ts +8 -2
  120. package/src/core/workflow-model/normalize-if-condition.ts +0 -2
  121. package/src/core/workflow-model/normalize-job-checkout.ts +105 -8
  122. package/src/core/workflow-model/normalize-job-listening.ts +0 -1
  123. package/src/core/workflow-model/normalize-job-success.ts +0 -1
  124. package/src/core/workflow-model/normalize-jobs.ts +330 -49
  125. package/src/core/workflow-model/normalize-step-gate.ts +0 -1
  126. package/src/core/workflow-model/normalize-triggers.ts +0 -1
  127. package/src/core/workflow-model/normalize-workflow-document.test.ts +759 -185
  128. package/src/core/workflow-model/normalize-workflow-document.ts +29 -4
  129. package/src/core/workflow-model/parse-interpolation-field.ts +50 -79
  130. package/src/core/workflow-model/validate-literal-name.ts +64 -0
  131. package/src/core/workflow-model/validate-predicate-expression.test.ts +153 -15
  132. package/src/core/workflow-model/validate-predicate-expression.ts +52 -120
  133. package/src/core/workflow-model/validation-issue.ts +4 -0
  134. package/src/core/workflow-model/workflow-field-label.ts +16 -2
  135. package/src/core/workflow-yaml/README.md +2 -2
  136. package/src/db/schema/sync-states.ts +4 -1
  137. package/src/db/sync-states.test.ts +57 -0
  138. package/src/db/sync-states.ts +6 -0
  139. package/src/presentation/dto/definition.ts +1 -0
  140. package/src/presentation/routes/create-definition.test.ts +3 -3
  141. package/src/presentation/routes/get-definition.test.ts +1 -1
  142. package/src/presentation/routes/list-definitions.test.ts +2 -1
  143. package/src/presentation/routes/validate-definition.test.ts +1 -0
  144. package/src/presentation/routes/validate-definition.ts +7 -1
  145. package/src/temporal/activities/sync-activities.test.ts +16 -0
  146. package/src/temporal/activities/sync-activities.ts +18 -3
  147. package/src/temporal/workflows/definition-sync.ts +1 -1
  148. package/test/agent-validation-catalog.ts +17 -0
  149. package/test/fixtures/valid-listening-job.yml +2 -1
  150. package/tsconfig.build.tsbuildinfo +1 -1
@@ -3,7 +3,7 @@ import type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/i
3
3
  import {markErrorReported} from '@shipfox/node-error-monitoring';
4
4
  import {Context} from '@temporalio/activity';
5
5
  import {ApplicationFailure} from '@temporalio/common';
6
- import type {DefinitionSyncErrorCode} from '#core/entities/sync-state.js';
6
+ import type {DefinitionSyncErrorCode, DefinitionSyncWarning} from '#core/entities/sync-state.js';
7
7
  import {
8
8
  classifySyncFailure,
9
9
  discoverWorkflowFiles,
@@ -50,6 +50,11 @@ export interface DiscoverWorkflowsActivityResult {
50
50
  export interface FetchAndApplyActivityResult {
51
51
  appliedCount: number;
52
52
  deletedCount: number;
53
+ warnings: DefinitionSyncWarning[];
54
+ }
55
+
56
+ export interface MarkSyncSucceededActivityInput extends SyncRefScopedInput {
57
+ warnings?: readonly DefinitionSyncWarning[] | undefined;
53
58
  }
54
59
 
55
60
  export interface DefinitionSyncActivityOptions {
@@ -93,6 +98,7 @@ function createPrepareDefinitionSyncActivity(sourceControl: DefinitionsSourceCon
93
98
  status: 'syncing',
94
99
  lastErrorCode: null,
95
100
  lastErrorMessage: null,
101
+ warnings: [],
96
102
  startedAt: new Date(),
97
103
  finishedAt: null,
98
104
  });
@@ -147,7 +153,7 @@ function createFetchAndApplyActivity(
147
153
  },
148
154
  });
149
155
 
150
- return await applyVcsDefinitionsBatch({
156
+ const result = await applyVcsDefinitionsBatch({
151
157
  projectId: input.projectId,
152
158
  workspaceId: input.workspaceId,
153
159
  ref: input.sourceRef,
@@ -160,12 +166,19 @@ function createFetchAndApplyActivity(
160
166
  contentHash: entry.contentHash,
161
167
  })),
162
168
  });
169
+
170
+ return {
171
+ ...result,
172
+ warnings: definitions.flatMap((entry) => entry.warnings),
173
+ };
163
174
  });
164
175
  };
165
176
  }
166
177
 
167
178
  function createMarkSyncSucceededActivity() {
168
- return async function markDefinitionSyncSucceeded(input: SyncRefScopedInput): Promise<void> {
179
+ return async function markDefinitionSyncSucceeded(
180
+ input: MarkSyncSucceededActivityInput,
181
+ ): Promise<void> {
169
182
  await markDefinitionSyncState({
170
183
  projectId: input.projectId,
171
184
  sourceConnectionId: input.sourceConnectionId,
@@ -174,6 +187,7 @@ function createMarkSyncSucceededActivity() {
174
187
  status: 'succeeded',
175
188
  lastErrorCode: null,
176
189
  lastErrorMessage: null,
190
+ warnings: input.warnings ?? [],
177
191
  finishedAt: new Date(),
178
192
  });
179
193
  };
@@ -191,6 +205,7 @@ function createMarkSyncFailedActivity() {
191
205
  status: 'failed',
192
206
  lastErrorCode: input.code,
193
207
  lastErrorMessage: input.message,
208
+ warnings: [],
194
209
  finishedAt: new Date(),
195
210
  });
196
211
  };
@@ -65,7 +65,7 @@ export async function definitionSyncWorkflow(
65
65
  const {paths} = await discoverDefinitionWorkflows(source);
66
66
  const applied = await fetchAndApplyDefinitionWorkflows({...source, paths});
67
67
 
68
- await markDefinitionSyncSucceeded(source);
68
+ await markDefinitionSyncSucceeded({...source, warnings: applied.warnings});
69
69
 
70
70
  return {
71
71
  sourceRef,
@@ -7,6 +7,21 @@ import {
7
7
  } from '@shipfox/api-agent-dto';
8
8
  import type {AgentValidationCatalog} from '@shipfox/api-agent-dto/inter-module';
9
9
 
10
+ const piModelIdsByProvider = Object.fromEntries(
11
+ MODEL_PROVIDER_CATALOG_SEED.filter((entry) => entry.support_status === 'supported').map(
12
+ (entry) => [
13
+ entry.id,
14
+ entry.id === 'anthropic'
15
+ ? ['claude-opus-4-8']
16
+ : entry.id === 'openai'
17
+ ? ['gpt-4.1', 'gpt-5.5-pro']
18
+ : entry.default_model === null
19
+ ? []
20
+ : [entry.default_model],
21
+ ],
22
+ ),
23
+ );
24
+
10
25
  export const agentValidationCatalog: AgentValidationCatalog = {
11
26
  version: 1,
12
27
  providers: MODEL_PROVIDER_IDS.map((id) => ({
@@ -17,6 +32,8 @@ export const agentValidationCatalog: AgentValidationCatalog = {
17
32
  harnesses: listHarnessDescriptors().map((harness) => ({
18
33
  id: harness.id,
19
34
  supported_provider_ids: [...harness.supportedProviderIds],
35
+ model_ids_by_provider:
36
+ harness.id === 'pi' ? piModelIdsByProvider : {anthropic: ['claude-opus-4-8']},
20
37
  thinking_levels: [...harness.thinkingLevels],
21
38
  effective_tools: listEnabledHarnessTools(
22
39
  harness.id,
@@ -2,7 +2,8 @@ name: Listening workflow
2
2
  runner: ubuntu-latest
3
3
  jobs:
4
4
  review:
5
- name: Review batch ${{ execution.index }}
5
+ name: Review batch
6
+ execution_name: Review batch ${{ execution.index }}
6
7
  listening:
7
8
  on:
8
9
  - source: github