@opengeni/db 4.4.1 → 4.5.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 (82) hide show
  1. package/dist/canonical-human-identities.js +3 -3
  2. package/dist/capability-reconciliation.js +2 -2
  3. package/dist/{chunk-T7GDRZOH.js → chunk-4LVV4R4F.js} +2 -2
  4. package/dist/{chunk-NQWVBQFK.js → chunk-575FUJE2.js} +3 -3
  5. package/dist/{chunk-K2XOMTAG.js → chunk-7LFHUC35.js} +2 -2
  6. package/dist/{chunk-JC43DLHB.js → chunk-7P67EF5K.js} +5 -5
  7. package/dist/{chunk-XWANFAN4.js → chunk-BH2HBICR.js} +4 -4
  8. package/dist/{chunk-PB73JQOI.js → chunk-C3FI3DJ5.js} +2 -2
  9. package/dist/{chunk-LLQLCFCT.js → chunk-GSZZDYPV.js} +2 -2
  10. package/dist/{chunk-B4DWUU4Y.js → chunk-GYAQYECK.js} +2 -2
  11. package/dist/{chunk-GYHXV2LR.js → chunk-K2YN562I.js} +2 -2
  12. package/dist/{chunk-6UJX2OXO.js → chunk-KMBU4KDY.js} +25 -1
  13. package/dist/chunk-KMBU4KDY.js.map +1 -0
  14. package/dist/{chunk-JN2DIKGW.js → chunk-M6TNKUGE.js} +3 -1
  15. package/dist/chunk-M6TNKUGE.js.map +1 -0
  16. package/dist/{chunk-SSCUP23X.js → chunk-MSAWMGWJ.js} +6 -6
  17. package/dist/{chunk-T5RZ3HWS.js → chunk-OFQDECMZ.js} +4 -4
  18. package/dist/{chunk-7UA4WUGK.js → chunk-RRZO5XRA.js} +2671 -2335
  19. package/dist/{chunk-7UA4WUGK.js.map → chunk-RRZO5XRA.js.map} +1 -1
  20. package/dist/{chunk-72JNABPO.js → chunk-TIF52FMJ.js} +3 -3
  21. package/dist/{chunk-67VNEM5N.js → chunk-TLCTS7CZ.js} +4 -4
  22. package/dist/{chunk-VFQI3CDL.js → chunk-VXCIFQX7.js} +2 -2
  23. package/dist/{chunk-5H6FHFHD.js → chunk-XX5M3TJJ.js} +2 -2
  24. package/dist/{chunk-LUO43IZE.js → chunk-YOFYG5ZI.js} +2 -2
  25. package/dist/connect-attempts.js +3 -3
  26. package/dist/editable-artifact-durable-export.js +2 -2
  27. package/dist/editable-artifacts.js +3 -3
  28. package/dist/index.d.ts +21 -0
  29. package/dist/index.js +25 -19
  30. package/dist/managed-auth-session-sets.js +3 -3
  31. package/dist/mcp-operations.js +2 -2
  32. package/dist/migrate.js +19 -19
  33. package/dist/organization-integration-policy.js +3 -3
  34. package/dist/provision-roles.js +1 -1
  35. package/dist/retained-provider-commands.js +6 -6
  36. package/dist/runtime-posture.d.ts +2 -2
  37. package/dist/schema.d.ts +93 -0
  38. package/dist/schema.js +3 -1
  39. package/dist/session-background-commands.js +5 -5
  40. package/dist/session-command-output.js +5 -5
  41. package/dist/session-event-slices.js +3 -3
  42. package/dist/session-history-tool-identities.d.ts +11 -0
  43. package/dist/session-mcp-credential-rotation.js +6 -6
  44. package/dist/session-message-search.d.ts +21 -0
  45. package/dist/session-tenancy.js +6 -6
  46. package/dist/{subscription-core-codex-SUO2TISD.js → subscription-core-codex-L7NPFWAH.js} +6 -6
  47. package/dist/{subscription-core-codex-compat-SDHM4XG4.js → subscription-core-codex-compat-AK2UMLE3.js} +8 -8
  48. package/dist/subscription-usage-pool.d.ts +1 -1
  49. package/dist/video-generation.js +3 -3
  50. package/dist/workspace-artifacts.d.ts +13 -0
  51. package/dist/workspace-tool-defaults.js +5 -5
  52. package/drizzle/0907_subscription_connection_one_owner.sql +339 -209
  53. package/drizzle/0908_site_opens.sql +33 -0
  54. package/package.json +9 -9
  55. package/src/index.ts +304 -44
  56. package/src/runtime-posture.ts +2 -0
  57. package/src/schema.ts +24 -0
  58. package/src/session-history-tool-identities.ts +55 -0
  59. package/src/session-message-search.ts +188 -33
  60. package/src/subscription-core/administered-connections.ts +7 -5
  61. package/src/subscription-usage-pool.ts +7 -5
  62. package/src/workspace-artifacts.ts +45 -1
  63. package/dist/chunk-6UJX2OXO.js.map +0 -1
  64. package/dist/chunk-JN2DIKGW.js.map +0 -1
  65. /package/dist/{chunk-T7GDRZOH.js.map → chunk-4LVV4R4F.js.map} +0 -0
  66. /package/dist/{chunk-NQWVBQFK.js.map → chunk-575FUJE2.js.map} +0 -0
  67. /package/dist/{chunk-K2XOMTAG.js.map → chunk-7LFHUC35.js.map} +0 -0
  68. /package/dist/{chunk-JC43DLHB.js.map → chunk-7P67EF5K.js.map} +0 -0
  69. /package/dist/{chunk-XWANFAN4.js.map → chunk-BH2HBICR.js.map} +0 -0
  70. /package/dist/{chunk-PB73JQOI.js.map → chunk-C3FI3DJ5.js.map} +0 -0
  71. /package/dist/{chunk-LLQLCFCT.js.map → chunk-GSZZDYPV.js.map} +0 -0
  72. /package/dist/{chunk-B4DWUU4Y.js.map → chunk-GYAQYECK.js.map} +0 -0
  73. /package/dist/{chunk-GYHXV2LR.js.map → chunk-K2YN562I.js.map} +0 -0
  74. /package/dist/{chunk-SSCUP23X.js.map → chunk-MSAWMGWJ.js.map} +0 -0
  75. /package/dist/{chunk-T5RZ3HWS.js.map → chunk-OFQDECMZ.js.map} +0 -0
  76. /package/dist/{chunk-72JNABPO.js.map → chunk-TIF52FMJ.js.map} +0 -0
  77. /package/dist/{chunk-67VNEM5N.js.map → chunk-TLCTS7CZ.js.map} +0 -0
  78. /package/dist/{chunk-VFQI3CDL.js.map → chunk-VXCIFQX7.js.map} +0 -0
  79. /package/dist/{chunk-5H6FHFHD.js.map → chunk-XX5M3TJJ.js.map} +0 -0
  80. /package/dist/{chunk-LUO43IZE.js.map → chunk-YOFYG5ZI.js.map} +0 -0
  81. /package/dist/{subscription-core-codex-SUO2TISD.js.map → subscription-core-codex-L7NPFWAH.js.map} +0 -0
  82. /package/dist/{subscription-core-codex-compat-SDHM4XG4.js.map → subscription-core-codex-compat-AK2UMLE3.js.map} +0 -0
package/dist/schema.d.ts CHANGED
@@ -865,6 +865,99 @@ export declare const siteSessionAccess: import("drizzle-orm/pg-core").PgTableWit
865
865
  };
866
866
  dialect: 'pg';
867
867
  }>;
868
+ /** When each person last opened a Site (migration 0908); personal ordering only. */
869
+ export declare const siteOpens: import("drizzle-orm/pg-core").PgTableWithColumns<{
870
+ name: "site_opens";
871
+ schema: undefined;
872
+ columns: {
873
+ accountId: import("drizzle-orm/pg-core").PgColumn<{
874
+ name: "account_id";
875
+ tableName: "site_opens";
876
+ dataType: "string";
877
+ columnType: "PgUUID";
878
+ data: string;
879
+ driverParam: string;
880
+ notNull: true;
881
+ hasDefault: false;
882
+ isPrimaryKey: false;
883
+ isAutoincrement: false;
884
+ hasRuntimeDefault: false;
885
+ enumValues: undefined;
886
+ baseColumn: never;
887
+ identity: undefined;
888
+ generated: undefined;
889
+ }, {}, {}>;
890
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
891
+ name: "workspace_id";
892
+ tableName: "site_opens";
893
+ dataType: "string";
894
+ columnType: "PgUUID";
895
+ data: string;
896
+ driverParam: string;
897
+ notNull: true;
898
+ hasDefault: false;
899
+ isPrimaryKey: false;
900
+ isAutoincrement: false;
901
+ hasRuntimeDefault: false;
902
+ enumValues: undefined;
903
+ baseColumn: never;
904
+ identity: undefined;
905
+ generated: undefined;
906
+ }, {}, {}>;
907
+ subjectId: import("drizzle-orm/pg-core").PgColumn<{
908
+ name: "subject_id";
909
+ tableName: "site_opens";
910
+ dataType: "string";
911
+ columnType: "PgText";
912
+ data: string;
913
+ driverParam: string;
914
+ notNull: true;
915
+ hasDefault: false;
916
+ isPrimaryKey: false;
917
+ isAutoincrement: false;
918
+ hasRuntimeDefault: false;
919
+ enumValues: [string, ...string[]];
920
+ baseColumn: never;
921
+ identity: undefined;
922
+ generated: undefined;
923
+ }, {}, {}>;
924
+ siteId: import("drizzle-orm/pg-core").PgColumn<{
925
+ name: "site_id";
926
+ tableName: "site_opens";
927
+ dataType: "string";
928
+ columnType: "PgUUID";
929
+ data: string;
930
+ driverParam: string;
931
+ notNull: true;
932
+ hasDefault: false;
933
+ isPrimaryKey: false;
934
+ isAutoincrement: false;
935
+ hasRuntimeDefault: false;
936
+ enumValues: undefined;
937
+ baseColumn: never;
938
+ identity: undefined;
939
+ generated: undefined;
940
+ }, {}, {}>;
941
+ openedAt: import("drizzle-orm/pg-core").PgColumn<{
942
+ name: "opened_at";
943
+ tableName: "site_opens";
944
+ dataType: "date";
945
+ columnType: "PgTimestamp";
946
+ data: Date;
947
+ driverParam: string;
948
+ notNull: true;
949
+ hasDefault: true;
950
+ isPrimaryKey: false;
951
+ isAutoincrement: false;
952
+ hasRuntimeDefault: false;
953
+ enumValues: undefined;
954
+ baseColumn: never;
955
+ identity: undefined;
956
+ generated: undefined;
957
+ }, {}, {}>;
958
+ };
959
+ dialect: 'pg';
960
+ }>;
868
961
  export declare const workspaceArtifactUploads: import("drizzle-orm/pg-core").PgTableWithColumns<{
869
962
  name: "workspace_artifact_uploads";
870
963
  schema: undefined;
package/dist/schema.js CHANGED
@@ -327,6 +327,7 @@ import {
327
327
  siteDataUsage,
328
328
  siteDataValidationWindows,
329
329
  siteDataWorkspaceValidationWindows,
330
+ siteOpens,
330
331
  siteSessionAccess,
331
332
  skillConfigConversionReceipts,
332
333
  skillSourceBindings,
@@ -448,7 +449,7 @@ import {
448
449
  xaiRotationSettings,
449
450
  xaiSessionAccountPins,
450
451
  xaiSubscriptionCredentials
451
- } from "./chunk-6UJX2OXO.js";
452
+ } from "./chunk-KMBU4KDY.js";
452
453
  import "./chunk-PZ5AY32C.js";
453
454
  export {
454
455
  agentInstructionOperations,
@@ -779,6 +780,7 @@ export {
779
780
  siteDataUsage,
780
781
  siteDataValidationWindows,
781
782
  siteDataWorkspaceValidationWindows,
783
+ siteOpens,
782
784
  siteSessionAccess,
783
785
  skillConfigConversionReceipts,
784
786
  skillSourceBindings,
@@ -39,13 +39,13 @@ import {
39
39
  settleConnectedMachineSessionBackgroundCommandWithMutation,
40
40
  settleSessionBackgroundCommandForRetainedProcessInTransaction,
41
41
  unobservableRetainedProcessOutcomeSql
42
- } from "./chunk-JC43DLHB.js";
43
- import "./chunk-VFQI3CDL.js";
44
- import "./chunk-72JNABPO.js";
42
+ } from "./chunk-7P67EF5K.js";
43
+ import "./chunk-VXCIFQX7.js";
44
+ import "./chunk-TIF52FMJ.js";
45
45
  import "./chunk-4UJCXBR2.js";
46
- import "./chunk-GYHXV2LR.js";
46
+ import "./chunk-K2YN562I.js";
47
47
  import "./chunk-SMCA7PNJ.js";
48
- import "./chunk-6UJX2OXO.js";
48
+ import "./chunk-KMBU4KDY.js";
49
49
  import "./chunk-PZ5AY32C.js";
50
50
  export {
51
51
  COMMAND_OUTPUT_DEFAULT_BYTES,
@@ -2,13 +2,13 @@ import {
2
2
  appendSessionCommandOutput,
3
3
  commandOutputClientEventIdPrefix,
4
4
  createConnectedCommandOutputCapture
5
- } from "./chunk-JC43DLHB.js";
6
- import "./chunk-VFQI3CDL.js";
7
- import "./chunk-72JNABPO.js";
5
+ } from "./chunk-7P67EF5K.js";
6
+ import "./chunk-VXCIFQX7.js";
7
+ import "./chunk-TIF52FMJ.js";
8
8
  import "./chunk-4UJCXBR2.js";
9
- import "./chunk-GYHXV2LR.js";
9
+ import "./chunk-K2YN562I.js";
10
10
  import "./chunk-SMCA7PNJ.js";
11
- import "./chunk-6UJX2OXO.js";
11
+ import "./chunk-KMBU4KDY.js";
12
12
  import "./chunk-PZ5AY32C.js";
13
13
  export {
14
14
  appendSessionCommandOutput,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listSessionEventSlices,
3
3
  readSessionMessageSliceInScope
4
- } from "./chunk-NQWVBQFK.js";
5
- import "./chunk-GYHXV2LR.js";
4
+ } from "./chunk-575FUJE2.js";
5
+ import "./chunk-K2YN562I.js";
6
6
  import "./chunk-SMCA7PNJ.js";
7
- import "./chunk-6UJX2OXO.js";
7
+ import "./chunk-KMBU4KDY.js";
8
8
  import "./chunk-PZ5AY32C.js";
9
9
  export {
10
10
  listSessionEventSlices,
@@ -0,0 +1,11 @@
1
+ import { type Database } from "./database.js";
2
+ /** Receipt proof metadata only. Canonical model history is never projected here. */
3
+ export declare function readSessionHistoryToolIdentityPage(tx: Pick<Database, "execute">, scope: {
4
+ workspaceId: string;
5
+ sessionId: string;
6
+ turnId: string;
7
+ }, before: number | null, limit: number): Promise<Array<{
8
+ position: number;
9
+ callId: string | null;
10
+ type: string | null;
11
+ }>>;
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  connectionMetadataMatchesBinding
3
- } from "./chunk-PB73JQOI.js";
3
+ } from "./chunk-C3FI3DJ5.js";
4
4
  import {
5
5
  lockSessionEventWriteRows,
6
6
  organizationApiKeyAllowsWorkspace
7
- } from "./chunk-JC43DLHB.js";
8
- import "./chunk-VFQI3CDL.js";
9
- import "./chunk-72JNABPO.js";
7
+ } from "./chunk-7P67EF5K.js";
8
+ import "./chunk-VXCIFQX7.js";
9
+ import "./chunk-TIF52FMJ.js";
10
10
  import "./chunk-4UJCXBR2.js";
11
11
  import {
12
12
  rawRows,
13
13
  setSubjectRlsContext,
14
14
  withRlsContext
15
- } from "./chunk-GYHXV2LR.js";
15
+ } from "./chunk-K2YN562I.js";
16
16
  import "./chunk-SMCA7PNJ.js";
17
17
  import {
18
18
  apiKeys,
19
19
  sessionCommandReceipts,
20
20
  sessionMcpServers,
21
21
  sessions
22
- } from "./chunk-6UJX2OXO.js";
22
+ } from "./chunk-KMBU4KDY.js";
23
23
  import "./chunk-PZ5AY32C.js";
24
24
 
25
25
  // src/session-mcp-credential-rotation.ts
@@ -9,6 +9,27 @@ export declare class SessionMessageSearchCursorError extends Error {
9
9
  * RegExp indices refer to original UTF-16 text (no lowercased-offset drift).
10
10
  */
11
11
  export declare function sessionMessageLiteralPattern(query: string): RegExp;
12
+ /** Every code point that `sessionMessageLiteralPattern` treats as the same
13
+ * character, keyed by each member. Characters absent from the map only match
14
+ * themselves. Built once from the runtime's own case mappings and verified
15
+ * against its `iu` matching, so the database filter agrees with the exact
16
+ * JavaScript matcher (including K/k/U+212A, s/S/U+017F and the Greek sigmas).
17
+ */
18
+ export declare function sessionMessageCaseClasses(): ReadonlyMap<number, readonly number[]>;
19
+ /** A PostgreSQL advanced regular expression matching exactly the strings that
20
+ * contain `query` under `sessionMessageLiteralPattern`. Every character is a
21
+ * \u/\U escape, so no character is special and the database collation plays
22
+ * no part. Null when the query holds a character PostgreSQL text cannot store
23
+ * (NUL or a lone surrogate): only losslessly encoded text can contain it.
24
+ */
25
+ export declare function sessionMessagePostgresPattern(query: string): string | null;
26
+ /** Database tests over stored message text: `matched` is exact for ordinary
27
+ * text; `encoded` marks losslessly encoded strings, which only the decoding
28
+ * reader can inspect and so always remain candidates. */
29
+ export declare function sessionMessageTextMatchSql(query: string, text: SQL): {
30
+ matched: SQL;
31
+ encoded: SQL;
32
+ };
12
33
  export declare function sessionMessageSearchSnippet(text: string, start: number, length: number): {
13
34
  text: string;
14
35
  matchStart: number;
@@ -19,14 +19,14 @@ import {
19
19
  sessionHasLiveAttempts,
20
20
  stopSessionWorkForVisibilityChange,
21
21
  transitionSessionVisibility
22
- } from "./chunk-T5RZ3HWS.js";
23
- import "./chunk-JC43DLHB.js";
24
- import "./chunk-VFQI3CDL.js";
25
- import "./chunk-72JNABPO.js";
22
+ } from "./chunk-OFQDECMZ.js";
23
+ import "./chunk-7P67EF5K.js";
24
+ import "./chunk-VXCIFQX7.js";
25
+ import "./chunk-TIF52FMJ.js";
26
26
  import "./chunk-4UJCXBR2.js";
27
- import "./chunk-GYHXV2LR.js";
27
+ import "./chunk-K2YN562I.js";
28
28
  import "./chunk-SMCA7PNJ.js";
29
- import "./chunk-6UJX2OXO.js";
29
+ import "./chunk-KMBU4KDY.js";
30
30
  import "./chunk-PZ5AY32C.js";
31
31
  export {
32
32
  EMPTY_SESSION_VISIBILITY_WORK,
@@ -20,8 +20,8 @@ import {
20
20
  subscriptionCoreReselectionPoints,
21
21
  subscriptionCoreTurnActor,
22
22
  touchSubscriptionCoreCodexBinding
23
- } from "./chunk-XWANFAN4.js";
24
- import "./chunk-B4DWUU4Y.js";
23
+ } from "./chunk-BH2HBICR.js";
24
+ import "./chunk-GYAQYECK.js";
25
25
  import {
26
26
  SUBSCRIPTION_CORE_CODEX_ENTITLEMENT_COOLDOWN_MS,
27
27
  SUBSCRIPTION_CORE_CODEX_EXHAUSTED_FALLBACK_MS,
@@ -29,10 +29,10 @@ import {
29
29
  SUBSCRIPTION_CORE_CODEX_RATE_LIMIT_FALLBACK_MS,
30
30
  SubscriptionCoreCodexAccessLostError,
31
31
  SubscriptionCoreCodexLeaseLostError
32
- } from "./chunk-VFQI3CDL.js";
33
- import "./chunk-GYHXV2LR.js";
32
+ } from "./chunk-VXCIFQX7.js";
33
+ import "./chunk-K2YN562I.js";
34
34
  import "./chunk-SMCA7PNJ.js";
35
- import "./chunk-6UJX2OXO.js";
35
+ import "./chunk-KMBU4KDY.js";
36
36
  import "./chunk-PZ5AY32C.js";
37
37
  export {
38
38
  SUBSCRIPTION_CORE_CODEX_ENTITLEMENT_COOLDOWN_MS,
@@ -63,4 +63,4 @@ export {
63
63
  subscriptionCoreTurnActor,
64
64
  touchSubscriptionCoreCodexBinding
65
65
  };
66
- //# sourceMappingURL=subscription-core-codex-SUO2TISD.js.map
66
+ //# sourceMappingURL=subscription-core-codex-L7NPFWAH.js.map
@@ -12,17 +12,17 @@ import {
12
12
  setSubscriptionCoreCodexPrimary,
13
13
  setSubscriptionCoreCodexRotation,
14
14
  setSubscriptionCoreWorkspaceCodexSource
15
- } from "./chunk-SSCUP23X.js";
16
- import "./chunk-B4DWUU4Y.js";
17
- import "./chunk-JC43DLHB.js";
15
+ } from "./chunk-MSAWMGWJ.js";
16
+ import "./chunk-GYAQYECK.js";
17
+ import "./chunk-7P67EF5K.js";
18
18
  import {
19
19
  SubscriptionCoreCodexSourceRefusedError
20
- } from "./chunk-VFQI3CDL.js";
21
- import "./chunk-72JNABPO.js";
20
+ } from "./chunk-VXCIFQX7.js";
21
+ import "./chunk-TIF52FMJ.js";
22
22
  import "./chunk-4UJCXBR2.js";
23
- import "./chunk-GYHXV2LR.js";
23
+ import "./chunk-K2YN562I.js";
24
24
  import "./chunk-SMCA7PNJ.js";
25
- import "./chunk-6UJX2OXO.js";
25
+ import "./chunk-KMBU4KDY.js";
26
26
  import "./chunk-PZ5AY32C.js";
27
27
  export {
28
28
  SubscriptionCoreCodexSourceRefusedError,
@@ -40,4 +40,4 @@ export {
40
40
  setSubscriptionCoreCodexRotation,
41
41
  setSubscriptionCoreWorkspaceCodexSource
42
42
  };
43
- //# sourceMappingURL=subscription-core-codex-compat-SDHM4XG4.js.map
43
+ //# sourceMappingURL=subscription-core-codex-compat-AK2UMLE3.js.map
@@ -8,7 +8,7 @@ type Window = "five_hour" | "weekly";
8
8
  * "Limit reached": an exhausted window, or the account's usage-limit deadline
9
9
  * matched to the window that resets then (otherwise by its distance).
10
10
  */
11
- export declare function blockedSubscriptionWindows(provider: Provider, usage: ReturnType<typeof projectSubscriptionCoreAccountUsage>, now: number): Partial<Record<Window, number>>;
11
+ export declare function blockedSubscriptionWindows(provider: Provider, usage: ReturnType<typeof projectSubscriptionCoreAccountUsage>, now: number): Partial<Record<Window, number | null>>;
12
12
  /** Relative estimates, not promised provider allowances; observations supersede these. */
13
13
  export declare function subscriptionPlanWeight(provider: Provider, plan: string | null): number;
14
14
  export declare function readSubscriptionUsagePool(db: Database, input: {
@@ -28,11 +28,11 @@ import {
28
28
  settleVideoGenerationFailure,
29
29
  settleVideoGenerationReady,
30
30
  updateWorkspaceVideoGenerationPolicy
31
- } from "./chunk-72JNABPO.js";
31
+ } from "./chunk-TIF52FMJ.js";
32
32
  import "./chunk-4UJCXBR2.js";
33
- import "./chunk-GYHXV2LR.js";
33
+ import "./chunk-K2YN562I.js";
34
34
  import "./chunk-SMCA7PNJ.js";
35
- import "./chunk-6UJX2OXO.js";
35
+ import "./chunk-KMBU4KDY.js";
36
36
  import "./chunk-PZ5AY32C.js";
37
37
  export {
38
38
  ACTIVE_VIDEO_GENERATION_STATUSES,
@@ -49,6 +49,19 @@ type ArtifactMutationToolName = "artifacts_create" | "artifacts_publish" | "arti
49
49
  export declare class WorkspaceArtifactNotFoundError extends Error {
50
50
  readonly name = "WorkspaceArtifactNotFoundError";
51
51
  }
52
+ /**
53
+ * Records that a person opened a Site in the console, for the order of their
54
+ * own Site rows. Only a Site this viewer can see is recorded; the row grants
55
+ * nothing. Repeated opens only move the time forward.
56
+ */
57
+ export declare function recordSiteOpened(db: Database, input: {
58
+ workspaceId: string;
59
+ subjectId: string;
60
+ viewer: WorkspaceArtifactViewer;
61
+ siteId: string;
62
+ }): Promise<{
63
+ openedAt: string;
64
+ }>;
52
65
  export declare class WorkspaceArtifactConflictError extends Error {
53
66
  readonly currentVersionId: string | null;
54
67
  readonly name = "WorkspaceArtifactConflictError";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  lockWorkspaceInferenceControl
3
- } from "./chunk-JC43DLHB.js";
4
- import "./chunk-VFQI3CDL.js";
5
- import "./chunk-72JNABPO.js";
3
+ } from "./chunk-7P67EF5K.js";
4
+ import "./chunk-VXCIFQX7.js";
5
+ import "./chunk-TIF52FMJ.js";
6
6
  import "./chunk-4UJCXBR2.js";
7
7
  import {
8
8
  withWorkspaceRls
9
- } from "./chunk-GYHXV2LR.js";
9
+ } from "./chunk-K2YN562I.js";
10
10
  import "./chunk-SMCA7PNJ.js";
11
- import "./chunk-6UJX2OXO.js";
11
+ import "./chunk-KMBU4KDY.js";
12
12
  import "./chunk-PZ5AY32C.js";
13
13
 
14
14
  // src/workspace-tool-defaults.ts