@sanoma-ai/workflows 0.11.14 → 0.11.16

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 (93) hide show
  1. package/README.md +10 -3
  2. package/dist/app-steps.d.ts +17 -0
  3. package/dist/app-steps.js +43 -0
  4. package/dist/app-steps.js.map +1 -0
  5. package/dist/app-workflows.d.ts +170 -0
  6. package/dist/app-workflows.js +107 -0
  7. package/dist/app-workflows.js.map +1 -0
  8. package/dist/apply-steps.js +3 -9
  9. package/dist/apply-steps.js.map +1 -1
  10. package/dist/approvals.d.ts +1 -1
  11. package/dist/approvals.js +3 -0
  12. package/dist/approvals.js.map +1 -1
  13. package/dist/call.d.ts +2 -1
  14. package/dist/call.js +2 -1
  15. package/dist/call.js.map +1 -1
  16. package/dist/change-steps.js +11 -17
  17. package/dist/change-steps.js.map +1 -1
  18. package/dist/chat-steps.d.ts +5 -0
  19. package/dist/chat-steps.js +107 -0
  20. package/dist/chat-steps.js.map +1 -0
  21. package/dist/chat-workflow.d.ts +43 -0
  22. package/dist/chat-workflow.js +47 -0
  23. package/dist/chat-workflow.js.map +1 -0
  24. package/dist/chats.d.ts +23 -4
  25. package/dist/chats.js +54 -7
  26. package/dist/chats.js.map +1 -1
  27. package/dist/client.d.ts +42 -31
  28. package/dist/client.js +118 -105
  29. package/dist/client.js.map +1 -1
  30. package/dist/config.js +14 -1
  31. package/dist/config.js.map +1 -1
  32. package/dist/db/company.d.ts +259 -2
  33. package/dist/db/company.js +32 -1
  34. package/dist/db/company.js.map +1 -1
  35. package/dist/db.d.ts +15 -0
  36. package/dist/db.js +42 -2
  37. package/dist/db.js.map +1 -1
  38. package/dist/fill.d.ts +5 -1
  39. package/dist/fill.js +11 -2
  40. package/dist/fill.js.map +1 -1
  41. package/dist/follow-steps.d.ts +8 -0
  42. package/dist/follow-steps.js +113 -0
  43. package/dist/follow-steps.js.map +1 -0
  44. package/dist/follow-workflow.d.ts +56 -0
  45. package/dist/follow-workflow.js +50 -0
  46. package/dist/follow-workflow.js.map +1 -0
  47. package/dist/index.d.ts +5 -2
  48. package/dist/index.js +4 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/run.d.ts +39 -0
  51. package/dist/run.js +15 -0
  52. package/dist/run.js.map +1 -1
  53. package/dist/sandbox.d.ts +10 -0
  54. package/dist/sandbox.js +42 -4
  55. package/dist/sandbox.js.map +1 -1
  56. package/dist/scenario.d.ts +19 -0
  57. package/dist/scenario.js.map +1 -1
  58. package/dist/seal.d.ts +7 -0
  59. package/dist/seal.js +14 -2
  60. package/dist/seal.js.map +1 -1
  61. package/dist/shared.d.ts +34 -2
  62. package/dist/shared.js +39 -2
  63. package/dist/shared.js.map +1 -1
  64. package/dist/worker.d.ts +8 -0
  65. package/dist/worker.js +116 -10
  66. package/dist/worker.js.map +1 -1
  67. package/drizzle/company/0002_runs_tell_the_app.sql +27 -0
  68. package/drizzle/company/meta/0002_snapshot.json +819 -0
  69. package/drizzle/company/meta/_journal.json +7 -0
  70. package/package.json +1 -1
  71. package/src/app-steps.ts +67 -0
  72. package/src/app-workflows.ts +251 -0
  73. package/src/apply-steps.ts +3 -9
  74. package/src/approvals.ts +3 -1
  75. package/src/call.ts +2 -1
  76. package/src/change-steps.ts +10 -17
  77. package/src/chat-steps.ts +117 -0
  78. package/src/chat-workflow.ts +69 -0
  79. package/src/chats.ts +80 -14
  80. package/src/client.ts +154 -109
  81. package/src/config.ts +14 -0
  82. package/src/db/company.ts +49 -2
  83. package/src/db.ts +51 -3
  84. package/src/fill.ts +10 -2
  85. package/src/follow-steps.ts +129 -0
  86. package/src/follow-workflow.ts +88 -0
  87. package/src/index.ts +19 -1
  88. package/src/run.ts +41 -0
  89. package/src/sandbox.ts +41 -4
  90. package/src/scenario.ts +17 -0
  91. package/src/seal.ts +16 -2
  92. package/src/shared.ts +47 -2
  93. package/src/worker.ts +149 -10
@@ -1,6 +1,7 @@
1
- import type { UIMessage } from "ai";
1
+ import type { UIMessage, UIMessageChunk } from "ai";
2
2
  import type { ConnectionStatus } from "../connection.ts";
3
3
  import type { LedgerRecord } from "../ledger.ts";
4
+ import type { RunCheck } from "../scenario.ts";
4
5
  import type { SecretLocation } from "../secret-store.ts";
5
6
  /** The credentials set from the app, each sealed under its namespace and name. */
6
7
  export declare const credentials: import("drizzle-orm/pg-core").PgTableWithColumns<{
@@ -385,7 +386,7 @@ export declare const wakeup: import("drizzle-orm/pg-core").PgTableWithColumns<{
385
386
  };
386
387
  dialect: 'pg';
387
388
  }>;
388
- /** The operator agent's chats (`chats.ts`): who each is for, its engine and its draft. */
389
+ /** The operator agent's chats (`chats.ts`): who each is for, its engine, its draft and the turn last begun (its run's id). */
389
390
  export declare const chats: import("drizzle-orm/pg-core").PgTableWithColumns<{
390
391
  name: "sanoma_chats";
391
392
  schema: undefined;
@@ -492,6 +493,23 @@ export declare const chats: import("drizzle-orm/pg-core").PgTableWithColumns<{
492
493
  identity: undefined;
493
494
  generated: undefined;
494
495
  }, {}, {}>;
496
+ turn: import("drizzle-orm/pg-core").PgColumn<{
497
+ name: "turn";
498
+ tableName: "sanoma_chats";
499
+ dataType: "string";
500
+ columnType: "PgText";
501
+ data: string;
502
+ driverParam: string;
503
+ notNull: false;
504
+ hasDefault: false;
505
+ isPrimaryKey: false;
506
+ isAutoincrement: false;
507
+ hasRuntimeDefault: false;
508
+ enumValues: [string, ...string[]];
509
+ baseColumn: never;
510
+ identity: undefined;
511
+ generated: undefined;
512
+ }, {}, {}>;
495
513
  };
496
514
  dialect: 'pg';
497
515
  }>;
@@ -573,6 +591,88 @@ export declare const chatMessages: import("drizzle-orm/pg-core").PgTableWithColu
573
591
  };
574
592
  dialect: 'pg';
575
593
  }>;
594
+ /**
595
+ * The reply a chat turn streams, as the worker writes it (`Chats.append`): its UI message stream's
596
+ * chunks in `seq` order, then a row with none, its end. The app streams them to the browser; a
597
+ * chat's turn's rows go when its next turn begins.
598
+ */
599
+ export declare const chatChunks: import("drizzle-orm/pg-core").PgTableWithColumns<{
600
+ name: "sanoma_chat_chunks";
601
+ schema: undefined;
602
+ columns: {
603
+ chatId: import("drizzle-orm/pg-core").PgColumn<{
604
+ name: "chatId";
605
+ tableName: "sanoma_chat_chunks";
606
+ dataType: "string";
607
+ columnType: "PgText";
608
+ data: string;
609
+ driverParam: string;
610
+ notNull: true;
611
+ hasDefault: false;
612
+ isPrimaryKey: false;
613
+ isAutoincrement: false;
614
+ hasRuntimeDefault: false;
615
+ enumValues: [string, ...string[]];
616
+ baseColumn: never;
617
+ identity: undefined;
618
+ generated: undefined;
619
+ }, {}, {}>;
620
+ runId: import("drizzle-orm/pg-core").PgColumn<{
621
+ name: "runId";
622
+ tableName: "sanoma_chat_chunks";
623
+ dataType: "string";
624
+ columnType: "PgText";
625
+ data: string;
626
+ driverParam: string;
627
+ notNull: true;
628
+ hasDefault: false;
629
+ isPrimaryKey: false;
630
+ isAutoincrement: false;
631
+ hasRuntimeDefault: false;
632
+ enumValues: [string, ...string[]];
633
+ baseColumn: never;
634
+ identity: undefined;
635
+ generated: undefined;
636
+ }, {}, {}>;
637
+ seq: import("drizzle-orm/pg-core").PgColumn<{
638
+ name: "seq";
639
+ tableName: "sanoma_chat_chunks";
640
+ dataType: "number";
641
+ columnType: "PgInteger";
642
+ data: number;
643
+ driverParam: string | number;
644
+ notNull: true;
645
+ hasDefault: false;
646
+ isPrimaryKey: false;
647
+ isAutoincrement: false;
648
+ hasRuntimeDefault: false;
649
+ enumValues: undefined;
650
+ baseColumn: never;
651
+ identity: undefined;
652
+ generated: undefined;
653
+ }, {}, {}>;
654
+ chunk: import("drizzle-orm/pg-core").PgColumn<{
655
+ name: "chunk";
656
+ tableName: "sanoma_chat_chunks";
657
+ dataType: "json";
658
+ columnType: "PgJsonb";
659
+ data: UIMessageChunk;
660
+ driverParam: unknown;
661
+ notNull: false;
662
+ hasDefault: false;
663
+ isPrimaryKey: false;
664
+ isAutoincrement: false;
665
+ hasRuntimeDefault: false;
666
+ enumValues: undefined;
667
+ baseColumn: never;
668
+ identity: undefined;
669
+ generated: undefined;
670
+ }, {}, {
671
+ $type: UIMessageChunk;
672
+ }>;
673
+ };
674
+ dialect: 'pg';
675
+ }>;
576
676
  /** The api tokens (`tokens.ts`): each one's SHA-256, never the token, whom it acts for, its groups, and when it was revoked. */
577
677
  export declare const apiTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
578
678
  name: "sanoma_api_tokens";
@@ -1150,3 +1250,160 @@ export declare const connectionSetups: import("drizzle-orm/pg-core").PgTableWith
1150
1250
  };
1151
1251
  dialect: 'pg';
1152
1252
  }>;
1253
+ /**
1254
+ * How far each app taken from a source is behind it, as the worker last checked (`writeAppsBehind`):
1255
+ * one row per app folder, its count of commits or why it could not be told.
1256
+ */
1257
+ export declare const appBehind: import("drizzle-orm/pg-core").PgTableWithColumns<{
1258
+ name: "sanoma_app_behind";
1259
+ schema: undefined;
1260
+ columns: {
1261
+ folder: import("drizzle-orm/pg-core").PgColumn<{
1262
+ name: "folder";
1263
+ tableName: "sanoma_app_behind";
1264
+ dataType: "string";
1265
+ columnType: "PgText";
1266
+ data: string;
1267
+ driverParam: string;
1268
+ notNull: true;
1269
+ hasDefault: false;
1270
+ isPrimaryKey: true;
1271
+ isAutoincrement: false;
1272
+ hasRuntimeDefault: false;
1273
+ enumValues: [string, ...string[]];
1274
+ baseColumn: never;
1275
+ identity: undefined;
1276
+ generated: undefined;
1277
+ }, {}, {}>;
1278
+ behind: import("drizzle-orm/pg-core").PgColumn<{
1279
+ name: "behind";
1280
+ tableName: "sanoma_app_behind";
1281
+ dataType: "number";
1282
+ columnType: "PgInteger";
1283
+ data: number;
1284
+ driverParam: string | number;
1285
+ notNull: false;
1286
+ hasDefault: false;
1287
+ isPrimaryKey: false;
1288
+ isAutoincrement: false;
1289
+ hasRuntimeDefault: false;
1290
+ enumValues: undefined;
1291
+ baseColumn: never;
1292
+ identity: undefined;
1293
+ generated: undefined;
1294
+ }, {}, {}>;
1295
+ error: import("drizzle-orm/pg-core").PgColumn<{
1296
+ name: "error";
1297
+ tableName: "sanoma_app_behind";
1298
+ dataType: "string";
1299
+ columnType: "PgText";
1300
+ data: string;
1301
+ driverParam: string;
1302
+ notNull: false;
1303
+ hasDefault: false;
1304
+ isPrimaryKey: false;
1305
+ isAutoincrement: false;
1306
+ hasRuntimeDefault: false;
1307
+ enumValues: [string, ...string[]];
1308
+ baseColumn: never;
1309
+ identity: undefined;
1310
+ generated: undefined;
1311
+ }, {}, {}>;
1312
+ checkedAt: import("drizzle-orm/pg-core").PgColumn<{
1313
+ name: "checkedAt";
1314
+ tableName: "sanoma_app_behind";
1315
+ dataType: "date";
1316
+ columnType: "PgTimestamp";
1317
+ data: Date;
1318
+ driverParam: string;
1319
+ notNull: true;
1320
+ hasDefault: true;
1321
+ isPrimaryKey: false;
1322
+ isAutoincrement: false;
1323
+ hasRuntimeDefault: false;
1324
+ enumValues: undefined;
1325
+ baseColumn: never;
1326
+ identity: undefined;
1327
+ generated: undefined;
1328
+ }, {}, {}>;
1329
+ };
1330
+ dialect: 'pg';
1331
+ }>;
1332
+ /** Each sandbox run's checks against its scenario, as the worker last ran them (`recordChecks` in sandbox.ts): one row per run. */
1333
+ export declare const runChecks: import("drizzle-orm/pg-core").PgTableWithColumns<{
1334
+ name: "sanoma_run_checks";
1335
+ schema: undefined;
1336
+ columns: {
1337
+ runId: import("drizzle-orm/pg-core").PgColumn<{
1338
+ name: "runId";
1339
+ tableName: "sanoma_run_checks";
1340
+ dataType: "string";
1341
+ columnType: "PgText";
1342
+ data: string;
1343
+ driverParam: string;
1344
+ notNull: true;
1345
+ hasDefault: false;
1346
+ isPrimaryKey: true;
1347
+ isAutoincrement: false;
1348
+ hasRuntimeDefault: false;
1349
+ enumValues: [string, ...string[]];
1350
+ baseColumn: never;
1351
+ identity: undefined;
1352
+ generated: undefined;
1353
+ }, {}, {}>;
1354
+ checks: import("drizzle-orm/pg-core").PgColumn<{
1355
+ name: "checks";
1356
+ tableName: "sanoma_run_checks";
1357
+ dataType: "json";
1358
+ columnType: "PgJsonb";
1359
+ data: RunCheck[];
1360
+ driverParam: unknown;
1361
+ notNull: false;
1362
+ hasDefault: false;
1363
+ isPrimaryKey: false;
1364
+ isAutoincrement: false;
1365
+ hasRuntimeDefault: false;
1366
+ enumValues: undefined;
1367
+ baseColumn: never;
1368
+ identity: undefined;
1369
+ generated: undefined;
1370
+ }, {}, {
1371
+ $type: RunCheck[];
1372
+ }>;
1373
+ error: import("drizzle-orm/pg-core").PgColumn<{
1374
+ name: "error";
1375
+ tableName: "sanoma_run_checks";
1376
+ dataType: "string";
1377
+ columnType: "PgText";
1378
+ data: string;
1379
+ driverParam: string;
1380
+ notNull: false;
1381
+ hasDefault: false;
1382
+ isPrimaryKey: false;
1383
+ isAutoincrement: false;
1384
+ hasRuntimeDefault: false;
1385
+ enumValues: [string, ...string[]];
1386
+ baseColumn: never;
1387
+ identity: undefined;
1388
+ generated: undefined;
1389
+ }, {}, {}>;
1390
+ checkedAt: import("drizzle-orm/pg-core").PgColumn<{
1391
+ name: "checkedAt";
1392
+ tableName: "sanoma_run_checks";
1393
+ dataType: "date";
1394
+ columnType: "PgTimestamp";
1395
+ data: Date;
1396
+ driverParam: string;
1397
+ notNull: true;
1398
+ hasDefault: true;
1399
+ isPrimaryKey: false;
1400
+ isAutoincrement: false;
1401
+ hasRuntimeDefault: false;
1402
+ enumValues: undefined;
1403
+ baseColumn: never;
1404
+ identity: undefined;
1405
+ generated: undefined;
1406
+ }, {}, {}>;
1407
+ };
1408
+ dialect: 'pg';
1409
+ }>;
@@ -48,7 +48,7 @@ export const wakeup = pgTable("sanoma_wakeup", {
48
48
  stoppedAt: when(),
49
49
  lastError: text(),
50
50
  }, (t) => [check("sanoma_wakeup_one_row", sql `${t.id} = 1`)]);
51
- /** The operator agent's chats (`chats.ts`): who each is for, its engine and its draft. */
51
+ /** The operator agent's chats (`chats.ts`): who each is for, its engine, its draft and the turn last begun (its run's id). */
52
52
  export const chats = pgTable("sanoma_chats", {
53
53
  id: text().primaryKey(),
54
54
  person: text().notNull(),
@@ -56,6 +56,7 @@ export const chats = pgTable("sanoma_chats", {
56
56
  draftId: text(),
57
57
  title: text().notNull(),
58
58
  createdAt: when().notNull().defaultNow(),
59
+ turn: text(),
59
60
  }, (t) => [index("sanoma_chats_person").on(t.person, t.createdAt)]);
60
61
  /** Each chat's messages, the AI SDK's UI messages as JSON, in `seq` order. */
61
62
  export const chatMessages = pgTable("sanoma_chat_messages", {
@@ -66,6 +67,19 @@ export const chatMessages = pgTable("sanoma_chat_messages", {
66
67
  seq: integer().notNull(),
67
68
  message: jsonb().$type().notNull(),
68
69
  }, (t) => [primaryKey({ columns: [t.chatId, t.id] })]);
70
+ /**
71
+ * The reply a chat turn streams, as the worker writes it (`Chats.append`): its UI message stream's
72
+ * chunks in `seq` order, then a row with none, its end. The app streams them to the browser; a
73
+ * chat's turn's rows go when its next turn begins.
74
+ */
75
+ export const chatChunks = pgTable("sanoma_chat_chunks", {
76
+ chatId: text()
77
+ .notNull()
78
+ .references(() => chats.id, { onDelete: "cascade" }),
79
+ runId: text().notNull(),
80
+ seq: integer().notNull(),
81
+ chunk: jsonb().$type(),
82
+ }, (t) => [primaryKey({ columns: [t.runId, t.seq] }), index("sanoma_chat_chunks_chat").on(t.chatId)]);
69
83
  /** The api tokens (`tokens.ts`): each one's SHA-256, never the token, whom it acts for, its groups, and when it was revoked. */
70
84
  export const apiTokens = pgTable("sanoma_api_tokens", {
71
85
  id: text().primaryKey(),
@@ -115,4 +129,21 @@ export const connectionSetups = pgTable("sanoma_connection_setups", {
115
129
  revision: text().notNull(),
116
130
  credentialVersion: text().notNull(),
117
131
  }, (t) => [primaryKey({ columns: [t.connectionId, t.revision] })]);
132
+ /**
133
+ * How far each app taken from a source is behind it, as the worker last checked (`writeAppsBehind`):
134
+ * one row per app folder, its count of commits or why it could not be told.
135
+ */
136
+ export const appBehind = pgTable("sanoma_app_behind", {
137
+ folder: text().primaryKey(),
138
+ behind: integer(),
139
+ error: text(),
140
+ checkedAt: when().notNull().defaultNow(),
141
+ }, (t) => [check("sanoma_app_behind_one_answer", sql `(${t.behind} IS NULL) <> (${t.error} IS NULL)`)]);
142
+ /** Each sandbox run's checks against its scenario, as the worker last ran them (`recordChecks` in sandbox.ts): one row per run. */
143
+ export const runChecks = pgTable("sanoma_run_checks", {
144
+ runId: text().primaryKey(),
145
+ checks: jsonb().$type(),
146
+ error: text(),
147
+ checkedAt: when().notNull().defaultNow(),
148
+ }, (t) => [check("sanoma_run_checks_one_answer", sql `(${t.checks} IS NULL) <> (${t.error} IS NULL)`)]);
118
149
  //# sourceMappingURL=company.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"company.js","sourceRoot":"","sources":["../../src/db/company.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"company.js","sourceRoot":"","sources":["../../src/db/company.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,GACV,MAAM,qBAAqB,CAAC;AAM7B,gGAAgG;AAChG,gGAAgG;AAChG,oFAAoF;AACpF,6FAA6F;AAC7F,qCAAqC;AAErC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAErD,kFAAkF;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAChC,oBAAoB,EACpB;IACE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC3B,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,KAAK,EAAE,IAAI,EAAE;SACV,OAAO,EAAE;SACT,UAAU,EAAE;SACZ,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAA,OAAO,CAAC;CAC/B,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACxD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAC3B,eAAe,EACf;IACE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IAC7C,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAgB,CAAC,OAAO,EAAE;CAChD,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;AAEF,sGAAsG;AACtG,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CACzB,aAAa,EACb;IACE,UAAU,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC5B,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAA2B,CAAC,OAAO,EAAE;IAC1D,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACxC,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;CAC5B,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACxD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAC3B,eAAe,EACf;IACE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE;IAC1B,EAAE,EAAE,IAAI,EAAE;IACV,SAAS,EAAE,IAAI,EAAE;IACjB,SAAS,EAAE,IAAI,EAAE;CAClB,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAA,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAC1D,CAAC;AAEF,8HAA8H;AAC9H,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAC1B,cAAc,EACd;IACE,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IACvB,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACxB,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACxB,OAAO,EAAE,IAAI,EAAE;IACf,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACxC,IAAI,EAAE,IAAI,EAAE;CACb,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAChE,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CACjC,sBAAsB,EACtB;IACE,MAAM,EAAE,IAAI,EAAE;SACX,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACpB,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;IACxB,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAa,CAAC,OAAO,EAAE;CAC9C,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACnD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAC/B,oBAAoB,EACpB;IACE,MAAM,EAAE,IAAI,EAAE;SACX,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,EAAkB;CACvC,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAClG,CAAC;AAEF,gIAAgI;AAChI,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE;IACpD,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IACvB,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAY,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACxC,SAAS,EAAE,IAAI,EAAE;CAClB,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,wBAAwB,EAAE;IAC9D,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IAC1B,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;CAC5B,CAAC,CAAC;AAEH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,EAAE;IACvD,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IACvB,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACxB,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,IAAI,EAAE;IACb,IAAI,EAAE,IAAI,EAAE;IACZ,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAY,CAAC,OAAO,EAAE;IAC3C,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC1B,UAAU,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC5B,UAAU,EAAE,IAAI,EAAE;IAClB,QAAQ,EAAE,KAAK,EAAE,CAAC,KAAK,EAAkB;IACzC,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,EAAoB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACvE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC3B,SAAS,EAAE,IAAI,EAAE;SACd,OAAO,EAAE;SACT,UAAU,EAAE;SACZ,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAA,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,0BAA0B,EAAE;IAClE,YAAY,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IACjC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC1B,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,EAA6B,CAAC,OAAO,EAAE;IAC3D,iBAAiB,EAAE,IAAI,EAAE;IACzB,iBAAiB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;IACtC,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACzC,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CACrC,0BAA0B,EAC1B;IACE,YAAY,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IAC1B,iBAAiB,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;CACpC,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC/D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAC9B,mBAAmB,EACnB;IACE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE;IACjB,KAAK,EAAE,IAAI,EAAE;IACb,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACzC,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAA,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CACnG,CAAC;AAEF,mIAAmI;AACnI,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAC9B,mBAAmB,EACnB;IACE,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAc;IACnC,KAAK,EAAE,IAAI,EAAE;IACb,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACzC,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAA,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CACnG,CAAC"}
package/dist/db.d.ts CHANGED
@@ -2,6 +2,7 @@ import { DBOSClient } from "@dbos-inc/dbos-sdk";
2
2
  import { type NodePgClient, type NodePgQueryResultHKT } from "drizzle-orm/node-postgres";
3
3
  import { type PgDatabase } from "drizzle-orm/pg-core";
4
4
  import { Client, Pool } from "pg";
5
+ import type { RunChecks } from "./scenario.ts";
5
6
  /**
6
7
  * A database, or a transaction on one (`db.transaction`): what every store takes, so a store runs
7
8
  * inside a caller's transaction as it runs on its own. Made by `databaseOn`.
@@ -100,3 +101,17 @@ export declare function connectMaking(databaseUrl: string): Promise<Client>;
100
101
  * keeps nothing across requests.
101
102
  */
102
103
  export declare function spendInviteRequest(db: Db, nonce: string, expiresAt: Date): Promise<boolean>;
104
+ /** How far an app is behind its source (`Source.behind`), or why that could not be told. */
105
+ export type AppBehind = {
106
+ behind: number;
107
+ } | {
108
+ error: string;
109
+ };
110
+ /** Sets each app's row to what was told of it now, and drops the rows of apps no longer listed. */
111
+ export declare function writeAppsBehind(db: Db, told: ReadonlyMap<string, AppBehind>): Promise<void>;
112
+ /** The app `folder`'s row: how far it is behind its source, or why not; undefined when the worker has not told it. */
113
+ export declare function readAppBehind(db: Db, folder: string): Promise<AppBehind | undefined>;
114
+ /** Sets the run's checks (`RunChecks`), replacing what was there. */
115
+ export declare function writeRunChecks(db: Db, runId: string, checks: RunChecks): Promise<void>;
116
+ /** The run's checks as the worker last ran them; undefined when it has run none. */
117
+ export declare function readRunChecks(db: Db, runId: string): Promise<RunChecks | undefined>;
package/dist/db.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { DBOS, DBOSClient } from "@dbos-inc/dbos-sdk";
2
2
  import { setTimeout as delay } from "node:timers/promises";
3
- import { and, eq, inArray, lte, ne, sql } from "drizzle-orm";
3
+ import { and, eq, inArray, lte, ne, notInArray, sql } from "drizzle-orm";
4
4
  import { DrizzleQueryError } from "drizzle-orm/errors";
5
5
  import { drizzle } from "drizzle-orm/node-postgres";
6
6
  import { PgPreparedQuery } from "drizzle-orm/pg-core";
7
7
  import { Client, Pool } from "pg";
8
- import { inviteRequests } from "./db/company.js";
8
+ import { appBehind, inviteRequests, runChecks } from "./db/company.js";
9
9
  import { workflowStatus } from "./db/dbos.js";
10
10
  import { applyMigrations, COMPANY_MIGRATIONS, migrationsApplied } from "./db/migrate.js";
11
11
  import { warn } from "./log.js";
@@ -330,4 +330,44 @@ export async function spendInviteRequest(db, nonce, expiresAt) {
330
330
  .returning({ nonce: inviteRequests.nonce });
331
331
  return spent.length === 1;
332
332
  }
333
+ /** Sets each app's row to what was told of it now, and drops the rows of apps no longer listed. */
334
+ export async function writeAppsBehind(db, told) {
335
+ const folders = [...told.keys()];
336
+ await db.delete(appBehind).where(folders.length ? notInArray(appBehind.folder, folders) : undefined);
337
+ for (const [folder, answer] of told) {
338
+ const row = "behind" in answer ? { behind: answer.behind, error: null } : { behind: null, error: answer.error };
339
+ await db
340
+ .insert(appBehind)
341
+ .values({ folder, ...row })
342
+ .onConflictDoUpdate({ target: appBehind.folder, set: { ...row, checkedAt: sql `now()` } });
343
+ }
344
+ }
345
+ /** The app `folder`'s row: how far it is behind its source, or why not; undefined when the worker has not told it. */
346
+ export async function readAppBehind(db, folder) {
347
+ const [row] = await db
348
+ .select({ behind: appBehind.behind, error: appBehind.error })
349
+ .from(appBehind)
350
+ .where(eq(appBehind.folder, folder));
351
+ if (!row)
352
+ return undefined;
353
+ return row.error === null ? { behind: row.behind } : { error: row.error };
354
+ }
355
+ /** Sets the run's checks (`RunChecks`), replacing what was there. */
356
+ export async function writeRunChecks(db, runId, checks) {
357
+ const row = "checks" in checks ? { checks: checks.checks, error: null } : { checks: null, error: checks.error };
358
+ await db
359
+ .insert(runChecks)
360
+ .values({ runId, ...row })
361
+ .onConflictDoUpdate({ target: runChecks.runId, set: { ...row, checkedAt: sql `now()` } });
362
+ }
363
+ /** The run's checks as the worker last ran them; undefined when it has run none. */
364
+ export async function readRunChecks(db, runId) {
365
+ const [row] = await db
366
+ .select({ checks: runChecks.checks, error: runChecks.error })
367
+ .from(runChecks)
368
+ .where(eq(runChecks.runId, runId));
369
+ if (!row)
370
+ return undefined;
371
+ return row.error === null ? { checks: row.checks } : { error: row.error };
372
+ }
333
373
  //# sourceMappingURL=db.js.map
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/fill.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import { z } from "zod";
2
2
  /** Seeds the generator from a name, so one name always makes up the same values. */
3
3
  export declare const seedFrom: (name: string) => void;
4
- /** The schema's value with every field `given` does not set made up, parsed by the schema. */
4
+ /**
5
+ * The schema's value with every required field `given` does not set made up, parsed by the schema.
6
+ * Optional fields are left out, as a caller may leave them: made up, they could break a rule
7
+ * between fields (one of two ids, not both).
8
+ */
5
9
  export declare function fill(schema: z.ZodType, given: Record<string, unknown>): unknown;
6
10
  /** An object schema's fields by name; none for any other schema. */
7
11
  export declare const shapeOf: (schema: z.ZodType) => Record<string, z.ZodType>;
package/dist/fill.js CHANGED
@@ -6,9 +6,18 @@ import { z } from "zod";
6
6
  setFaker(faker);
7
7
  /** Seeds the generator from a name, so one name always makes up the same values. */
8
8
  export const seedFrom = (name) => seed(createHash("sha256").update(name).digest().readUInt32BE(0));
9
- /** The schema's value with every field `given` does not set made up, parsed by the schema. */
9
+ /**
10
+ * The schema's value with every required field `given` does not set made up, parsed by the schema.
11
+ * Optional fields are left out, as a caller may leave them: made up, they could break a rule
12
+ * between fields (one of two ids, not both).
13
+ */
10
14
  export function fill(schema, given) {
11
- return schema.parse({ ...fake(schema), ...given });
15
+ const made = fake(schema);
16
+ for (const [name, field] of Object.entries(shapeOf(schema))) {
17
+ if (field.safeParse(undefined).success)
18
+ delete made[name];
19
+ }
20
+ return schema.parse({ ...made, ...given });
12
21
  }
13
22
  /** An object schema's fields by name; none for any other schema. */
14
23
  export const shapeOf = (schema) => schema instanceof z.ZodObject ? schema.shape : {};
package/dist/fill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fill.js","sourceRoot":"","sources":["../src/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAE/D,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhB,oFAAoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3G,8FAA8F;AAC9F,MAAM,UAAU,IAAI,CAAC,MAAiB,EAAE,KAA8B;IACpE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,GAAI,IAAI,CAAC,MAAM,CAAY,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAiB,EAA6B,EAAE,CACtE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,sHAAsH;AACtH,MAAM,UAAU,MAAM,CAAC,MAAiB;IACtC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,OAAO,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,MAAiB;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,OAAO,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACzG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAe,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,EAAE,CACpC,GAAG,YAAY,SAAS,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,cAAc,CAAC"}
1
+ {"version":3,"file":"fill.js","sourceRoot":"","sources":["../src/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAE/D,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhB,oFAAoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3G;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,MAAiB,EAAE,KAA8B;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAA4B,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAiB,EAA6B,EAAE,CACtE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,sHAAsH;AACtH,MAAM,UAAU,MAAM,CAAC,MAAiB;IACtC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,OAAO,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,MAAiB;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,OAAO,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACzG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAe,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,EAAE,CACpC,GAAG,YAAY,SAAS,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { FollowSteps } from "./follow-workflow.ts";
2
+ import { type RemoteHalf } from "./source.ts";
3
+ /** What the follow steps need of the resolved config: the remote halves and the declared hosts. */
4
+ export interface FollowStepsOptions {
5
+ remotes: ReadonlyMap<string, RemoteHalf>;
6
+ hosts(): Promise<string[]>;
7
+ }
8
+ export declare function followSteps({ remotes, hosts }: FollowStepsOptions): FollowSteps;