primitive-admin 1.2.0-alpha.1 → 1.2.0-alpha.3

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 (129) hide show
  1. package/README.md +3 -2
  2. package/dist/bin/primitive.js +22 -24
  3. package/dist/bin/primitive.js.map +1 -1
  4. package/dist/src/commands/agent-sessions.d.ts +20 -0
  5. package/dist/src/commands/agent-sessions.js +275 -0
  6. package/dist/src/commands/agent-sessions.js.map +1 -0
  7. package/dist/src/commands/apps-children.d.ts +54 -0
  8. package/dist/src/commands/apps-children.js +578 -0
  9. package/dist/src/commands/apps-children.js.map +1 -0
  10. package/dist/src/commands/apps.js +88 -9
  11. package/dist/src/commands/apps.js.map +1 -1
  12. package/dist/src/commands/auth-sessions.d.ts +3 -3
  13. package/dist/src/commands/auth-sessions.js +117 -23
  14. package/dist/src/commands/auth-sessions.js.map +1 -1
  15. package/dist/src/commands/auth.js +248 -15
  16. package/dist/src/commands/auth.js.map +1 -1
  17. package/dist/src/commands/documents.d.ts +29 -0
  18. package/dist/src/commands/documents.js +676 -191
  19. package/dist/src/commands/documents.js.map +1 -1
  20. package/dist/src/commands/env.d.ts +9 -1
  21. package/dist/src/commands/env.js +158 -45
  22. package/dist/src/commands/env.js.map +1 -1
  23. package/dist/src/commands/functions.js +7 -1
  24. package/dist/src/commands/functions.js.map +1 -1
  25. package/dist/src/commands/init.js +2 -1
  26. package/dist/src/commands/init.js.map +1 -1
  27. package/dist/src/commands/integrations.js +14 -2
  28. package/dist/src/commands/integrations.js.map +1 -1
  29. package/dist/src/commands/prompts.js +4 -0
  30. package/dist/src/commands/prompts.js.map +1 -1
  31. package/dist/src/commands/scripts.js +1 -1
  32. package/dist/src/commands/scripts.js.map +1 -1
  33. package/dist/src/commands/sync-app-settings.d.ts +25 -7
  34. package/dist/src/commands/sync-app-settings.js +81 -20
  35. package/dist/src/commands/sync-app-settings.js.map +1 -1
  36. package/dist/src/commands/sync.d.ts +107 -9
  37. package/dist/src/commands/sync.js +649 -300
  38. package/dist/src/commands/sync.js.map +1 -1
  39. package/dist/src/commands/users.js +77 -2
  40. package/dist/src/commands/users.js.map +1 -1
  41. package/dist/src/lib/api-client.d.ts +161 -5
  42. package/dist/src/lib/api-client.js +210 -49
  43. package/dist/src/lib/api-client.js.map +1 -1
  44. package/dist/src/lib/app-settings-descriptor.d.ts +9 -1
  45. package/dist/src/lib/app-settings-descriptor.js +22 -10
  46. package/dist/src/lib/app-settings-descriptor.js.map +1 -1
  47. package/dist/src/lib/auth-flow.d.ts +41 -1
  48. package/dist/src/lib/auth-flow.js +45 -16
  49. package/dist/src/lib/auth-flow.js.map +1 -1
  50. package/dist/src/lib/child-apps-local.d.ts +184 -0
  51. package/dist/src/lib/child-apps-local.js +282 -0
  52. package/dist/src/lib/child-apps-local.js.map +1 -0
  53. package/dist/src/lib/ci-session-request.d.ts +22 -0
  54. package/dist/src/lib/ci-session-request.js +51 -0
  55. package/dist/src/lib/ci-session-request.js.map +1 -0
  56. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +4 -1
  57. package/dist/src/lib/codegen-shared/generatedFiles.js +19 -13
  58. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
  59. package/dist/src/lib/config-object-descriptor.js +5 -4
  60. package/dist/src/lib/config-object-descriptor.js.map +1 -1
  61. package/dist/src/lib/config-payload.js +2 -3
  62. package/dist/src/lib/config-payload.js.map +1 -1
  63. package/dist/src/lib/config-surface.d.ts +2 -1
  64. package/dist/src/lib/config-surface.js +7 -28
  65. package/dist/src/lib/config-surface.js.map +1 -1
  66. package/dist/src/lib/credentials-store.d.ts +17 -2
  67. package/dist/src/lib/credentials-store.js +72 -6
  68. package/dist/src/lib/credentials-store.js.map +1 -1
  69. package/dist/src/lib/document-export-lookups.d.ts +31 -0
  70. package/dist/src/lib/document-export-lookups.js +53 -0
  71. package/dist/src/lib/document-export-lookups.js.map +1 -0
  72. package/dist/src/lib/document-export-permissions.d.ts +7 -5
  73. package/dist/src/lib/document-export-permissions.js +7 -5
  74. package/dist/src/lib/document-export-permissions.js.map +1 -1
  75. package/dist/src/lib/env-resolver-core.d.ts +69 -1
  76. package/dist/src/lib/env-resolver-core.js +137 -20
  77. package/dist/src/lib/env-resolver-core.js.map +1 -1
  78. package/dist/src/lib/env-resolver.d.ts +14 -2
  79. package/dist/src/lib/env-resolver.js +32 -10
  80. package/dist/src/lib/env-resolver.js.map +1 -1
  81. package/dist/src/lib/function-run.d.ts +4 -1
  82. package/dist/src/lib/function-run.js +24 -4
  83. package/dist/src/lib/function-run.js.map +1 -1
  84. package/dist/src/lib/function-sync.d.ts +5 -2
  85. package/dist/src/lib/function-sync.js +7 -4
  86. package/dist/src/lib/function-sync.js.map +1 -1
  87. package/dist/src/lib/generated-config-surfaces.d.ts +49 -52
  88. package/dist/src/lib/generated-config-surfaces.js +211 -140
  89. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  90. package/dist/src/lib/generated-sdk-types.d.ts +1 -1
  91. package/dist/src/lib/generated-sdk-types.js +1 -1
  92. package/dist/src/lib/generated-sdk-types.js.map +1 -1
  93. package/dist/src/lib/init-adopt.js +12 -3
  94. package/dist/src/lib/init-adopt.js.map +1 -1
  95. package/dist/src/lib/local-state.d.ts +17 -1
  96. package/dist/src/lib/local-state.js +94 -15
  97. package/dist/src/lib/local-state.js.map +1 -1
  98. package/dist/src/lib/local-test-cases.d.ts +5 -2
  99. package/dist/src/lib/local-test-cases.js +7 -4
  100. package/dist/src/lib/local-test-cases.js.map +1 -1
  101. package/dist/src/lib/log-inspection.d.ts +25 -0
  102. package/dist/src/lib/log-inspection.js +24 -0
  103. package/dist/src/lib/log-inspection.js.map +1 -1
  104. package/dist/src/lib/logout-admin-session.d.ts +2 -1
  105. package/dist/src/lib/logout-admin-session.js +7 -1
  106. package/dist/src/lib/logout-admin-session.js.map +1 -1
  107. package/dist/src/lib/pull-write.d.ts +31 -0
  108. package/dist/src/lib/pull-write.js +49 -0
  109. package/dist/src/lib/pull-write.js.map +1 -0
  110. package/dist/src/lib/root-import-decision.d.ts +59 -0
  111. package/dist/src/lib/root-import-decision.js +95 -0
  112. package/dist/src/lib/root-import-decision.js.map +1 -0
  113. package/dist/src/lib/scope-request.d.ts +69 -0
  114. package/dist/src/lib/scope-request.js +188 -0
  115. package/dist/src/lib/scope-request.js.map +1 -0
  116. package/dist/src/lib/session-id.d.ts +9 -0
  117. package/dist/src/lib/session-id.js +28 -0
  118. package/dist/src/lib/session-id.js.map +1 -0
  119. package/dist/src/lib/snapshots.d.ts +17 -1
  120. package/dist/src/lib/snapshots.js +50 -2
  121. package/dist/src/lib/snapshots.js.map +1 -1
  122. package/dist/src/lib/sync-paths.d.ts +35 -0
  123. package/dist/src/lib/sync-paths.js +57 -5
  124. package/dist/src/lib/sync-paths.js.map +1 -1
  125. package/dist/src/lib/transient-retry.d.ts +34 -0
  126. package/dist/src/lib/transient-retry.js +57 -0
  127. package/dist/src/lib/transient-retry.js.map +1 -0
  128. package/dist/src/types/index.d.ts +21 -4
  129. package/package.json +4 -3
@@ -24,13 +24,15 @@
24
24
  * diffs and shows like any other setting. The secrets' values live only in the
25
25
  * app secret store (`primitive secrets set`).
26
26
  */
27
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
27
+ import { existsSync, readFileSync, mkdirSync } from "fs";
28
28
  import { join } from "path";
29
29
  import { createHash } from "crypto";
30
30
  import { parseConfigToml, stringifyConfigToml } from "../lib/config-toml.js";
31
31
  import { APP_SETTINGS_DESCRIPTOR, APP_SETTINGS_SECTIONS, buildAppSettingsPayload, projectAppSettingsForComparison, serializeAppSettingsToToml, } from "../lib/app-settings-descriptor.js";
32
32
  import { canonicalJsonStringify } from "../lib/canonical-json.js";
33
- import { syncStateReadPath } from "../lib/sync-paths.js";
33
+ import { writePulledFile } from "../lib/pull-write.js";
34
+ import { resolveSyncStateReadPath } from "../lib/sync-paths.js";
35
+ import { requireCurrentEnvironment } from "../lib/env-resolver.js";
34
36
  import { success, error, info, json, result as printResult, divider, } from "../lib/output.js";
35
37
  /** The app-settings file name inside a sync directory. */
36
38
  export const APP_TOML_FILENAME = "app.toml";
@@ -53,16 +55,6 @@ function ensureDir(dirPath) {
53
55
  if (!existsSync(dirPath))
54
56
  mkdirSync(dirPath, { recursive: true });
55
57
  }
56
- /**
57
- * Write `app.toml` from server settings and return its content hash. Shared by
58
- * `config pull` (whole-tree and `--only app`), so the file and the hash have one
59
- * producer.
60
- */
61
- export function writeAppSettingsToml(configDir, settings) {
62
- const path = appTomlPath(configDir);
63
- writeFileSync(path, serializeAppSettings(settings));
64
- return contentHashOfFile(path);
65
- }
66
58
  /**
67
59
  * Validate a parsed `app.toml` for push and return the fatal errors (a type
68
60
  * mismatch, an unrecognized or retired key, a missing required key). An empty
@@ -81,8 +73,8 @@ export function collectAppSettingsPushErrors(tomlData, options = {}) {
81
73
  // `sync` maintains, touching only `entities.app` and preserving every other
82
74
  // entity. Kept as small local load/save helpers (rather than importing
83
75
  // `sync.ts`) to avoid an import cycle — `sync.ts` imports the serializer above.
84
- function loadSyncState(configDir) {
85
- const p = syncStateReadPath(configDir);
76
+ function loadSyncState() {
77
+ const p = resolveSyncStateReadPath();
86
78
  if (!existsSync(p))
87
79
  return null;
88
80
  try {
@@ -153,12 +145,76 @@ export function renderAppSettings(settings) {
153
145
  * nothing, so there is no longer a class of value the pull has to warn about
154
146
  * being absent (#2307's warning went with the withholding layer). `config pull`
155
147
  * calls this for `app.toml`, whether the pull is whole-tree or `--only app`.
148
+ *
149
+ * A file that already states the same settings is left as it is (#4160): the
150
+ * comparison is the payload `config diff` and `config push` build from the
151
+ * file, so its comments, key order and explicit defaults survive the pull.
152
+ * `written` says which happened.
156
153
  */
157
154
  export function writePulledAppSettings(configDir, settings, options = {}) {
158
155
  ensureDir(configDir);
159
- const contentHash = writeAppSettingsToml(configDir, settings);
160
- options.log?.(`Wrote ${appTomlPath(configDir)}`);
161
- return { path: appTomlPath(configDir), contentHash };
156
+ const path = appTomlPath(configDir);
157
+ const statedName = options.keepStatedName ? readStatedAppName(path) : undefined;
158
+ let content;
159
+ if (!options.keepStatedName) {
160
+ content = serializeAppSettings(settings);
161
+ }
162
+ else {
163
+ const data = serializeAppSettingsToToml(settings);
164
+ if (data.app) {
165
+ if (statedName !== undefined)
166
+ data.app.name = statedName;
167
+ else
168
+ delete data.app.name;
169
+ }
170
+ content = stringifyConfigToml(data);
171
+ }
172
+ const written = writePulledFile(path, content, options.tally, sameAppSettingsAs(content, { nameOptional: options.keepStatedName }));
173
+ if (written)
174
+ options.log?.(`Wrote ${path}`);
175
+ return {
176
+ path,
177
+ contentHash: contentHashOfFile(path),
178
+ written,
179
+ ...(options.keepStatedName && statedName === undefined
180
+ ? {
181
+ note: `${APP_TOML_FILENAME} carries no [app].name: a pull on a machine-local environment never ` +
182
+ `writes the child's name; add the parent's name before merging back.`,
183
+ }
184
+ : {}),
185
+ };
186
+ }
187
+ /**
188
+ * Whether an `app.toml`'s text states the same settings as `serverContent`
189
+ * (#4160) — the payload push builds from each, hashed the way `config diff`
190
+ * compares it. A file push would refuse never matches, so pull rewrites it.
191
+ */
192
+ function sameAppSettingsAs(serverContent, options) {
193
+ const payloadOf = (content) => buildAppSettingsPayload(parseConfigToml(content), {
194
+ nameOptional: options.nameOptional,
195
+ });
196
+ return (localContent) => {
197
+ const local = payloadOf(localContent);
198
+ const server = payloadOf(serverContent);
199
+ if (local.errors.length > 0 || server.errors.length > 0)
200
+ return false;
201
+ return (hashAppSettingsForDiff(local.settings) === hashAppSettingsForDiff(server.settings));
202
+ };
203
+ }
204
+ /**
205
+ * The `[app].name` an `app.toml` states, as TOML stated it, or undefined when
206
+ * the file is absent, unparseable or names nothing.
207
+ */
208
+ function readStatedAppName(path) {
209
+ if (!existsSync(path))
210
+ return undefined;
211
+ try {
212
+ const parsed = parseConfigToml(readFileSync(path, "utf-8"));
213
+ return parsed?.app?.name;
214
+ }
215
+ catch {
216
+ return undefined;
217
+ }
162
218
  }
163
219
  /**
164
220
  * Whether `[app].name` is out of BOTH the comparison and the payload right now
@@ -180,6 +236,8 @@ export function writePulledAppSettings(configDir, settings, options = {}) {
180
236
  * `name` re-enters, so every post-cross-app rename would report `both-changed`.
181
237
  */
182
238
  export function appSettingsNameExcluded(input) {
239
+ if (input.localEnvironment)
240
+ return true;
183
241
  if (input.isCrossAppPush)
184
242
  return true;
185
243
  if (input.recordedExcludedName === undefined)
@@ -210,8 +268,9 @@ function sameStatedName(fileName, recorded) {
210
268
  return false;
211
269
  }
212
270
  /** `appSettingsNameExcluded` for a caller holding the loaded state (diff). */
213
- export function appSettingsNameExcludedForState(state, appId, tomlData) {
271
+ export function appSettingsNameExcludedForState(state, appId, tomlData, localEnvironment = false) {
214
272
  return appSettingsNameExcluded({
273
+ localEnvironment,
215
274
  isCrossAppPush: !!(state && state.appId !== appId),
216
275
  recordedExcludedName: state?.entities?.app?.excludedName,
217
276
  fileName: tomlData?.app?.name,
@@ -285,12 +344,14 @@ export async function diffAppSettings(client, appId, configDir, options = {}) {
285
344
  // out too — otherwise a malformed local `name` would abort diff on a file
286
345
  // push would accept and ignore, and the target's own name would report as a
287
346
  // difference push has no intention of applying.
288
- const state = loadSyncState(configDir);
289
- const excludeName = appSettingsNameExcludedForState(state, appId, tomlData);
347
+ const state = loadSyncState();
348
+ const localEnvironment = requireCurrentEnvironment().local;
349
+ const excludeName = appSettingsNameExcludedForState(state, appId, tomlData, localEnvironment);
290
350
  // ONE validator with push (#2880 criterion 1): whole-truth payload, so a
291
351
  // missing required key is an error here exactly as it is there.
292
352
  const { settings: local, errors } = buildAppSettingsPayload(tomlData, {
293
353
  excludeName,
354
+ nameOptional: localEnvironment,
294
355
  });
295
356
  // A file with validation errors is unpushable, so diff must not present its
296
357
  // surviving values as clean (or as a partial diff) — that would advertise
@@ -1 +1 @@
1
- {"version":3,"file":"sync-app-settings.js","sourceRoot":"","sources":["../../../src/commands/sync-app-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-app-settings.js","sourceRoot":"","sources":["../../../src/commands/sync-app-settings.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Command } from "commander";
2
2
  import { ApiClient } from "../lib/api-client.js";
3
3
  import { type OperationFormHints } from "../lib/toml-database-config.js";
4
4
  import { type FieldForm } from "../lib/toml-native-form.js";
5
+ import { type PullWriteTally } from "../lib/pull-write.js";
5
6
  import { type PushMode } from "../lib/config-payload.js";
6
7
  import { type ConfigObjectSurface, type ConfigTable } from "../lib/generated-config-surfaces.js";
7
8
  import { type PromptKind } from "../lib/generated-config-surfaces.js";
@@ -177,6 +178,17 @@ export declare function hashWorkflowTomlForDiff(parsed: any, resolvedKey?: strin
177
178
  export declare function hashRemoteWorkflowForDiff(workflow: any, draft: any, configs: any[], logger?: (message: string) => void, options?: {
178
179
  compareActivation?: boolean;
179
180
  }): string;
181
+ /**
182
+ * Whether a workflow file already describes the workflow `remoteToml`
183
+ * serializes (#4160), by `config diff`'s comparison: the normalized hash, with
184
+ * activation compared only when the file names a configuration.
185
+ *
186
+ * Three shapes never match, because pull has work to do on them: a file with
187
+ * `[[include]]` fragments (`reconcileWorkflowIncludes` owns those), one still
188
+ * carrying the retired inline `[[configs]]` list, and any other file push
189
+ * refuses (`pullMustRewrite`).
190
+ */
191
+ export declare function sameWorkflowAs(workflowKey: string, remoteToml: string): (localContent: string) => boolean;
180
192
  export interface ParsedAuthSettings {
181
193
  settings: Record<string, any>;
182
194
  warnings: string[];
@@ -670,7 +682,27 @@ export declare function serializeCronTrigger(trigger: any, logger?: (message: st
670
682
  export declare function buildCronTriggerPushPayload(key: string, tomlData: any, { mode }?: {
671
683
  mode?: PushMode;
672
684
  }): Record<string, any>;
673
- export declare function serializeBlobBucket(bucket: any, logger?: (message: string) => void): string;
685
+ export declare function serializeBlobBucket(bucket: any, ruleSetIdToName?: Map<string, string>, logger?: (message: string) => void): string;
686
+ /**
687
+ * The entity a `blob-buckets/<key>.toml` describes (#4116) — the parse
688
+ * `config push` builds its bodies from and `config diff` compares.
689
+ *
690
+ * Read in CREATE mode, so the immutable `ttlTier` stays nameable. The rule set
691
+ * is left as `_ruleSetName` for `resolveRuleSetReference`; the deprecated
692
+ * `ruleSetId` spelling is forwarded as the id it already is. A file carrying
693
+ * both is refused by the preflight (`blobBucketFileErrors`) before this runs.
694
+ *
695
+ * An omitted `name` stays omitted: the update leaves the server's name alone,
696
+ * and only the create body falls back to the key.
697
+ */
698
+ export declare function parseBlobBucketToml(doc: any): any;
699
+ /**
700
+ * The advisory `config push` prints for a bucket file still naming its rule set
701
+ * by id (#4116). The key is deprecated, not retired: the file pushes.
702
+ */
703
+ export declare function blobBucketDeprecatedKeyWarning(filePath: string, tomlData: any): string | null;
704
+ /** A bucket file's own refusals, decided from the file alone (#4116). */
705
+ export declare function blobBucketFileErrors(filePath: string, tomlData: any): string[];
674
706
  /**
675
707
  * Build the PATCH payload for a blob-bucket update from local TOML.
676
708
  *
@@ -726,7 +758,8 @@ export declare function promptConfigPayload(tomlConfig: any, options?: {
726
758
  create?: boolean;
727
759
  }): Record<string, any>;
728
760
  /**
729
- * Build the POST body for a blob-bucket create from local TOML.
761
+ * Build the POST body for a blob-bucket create from the parsed entity
762
+ * (`parseBlobBucketToml`, its rule set resolved).
730
763
  *
731
764
  * `ttlTier` is here and absent from the update body because the definition says
732
765
  * so (`writableOn: ["create"]`) — the retention tier is fixed at creation.
@@ -926,6 +959,11 @@ export declare function runConfigPushPreflight(input: {
926
959
  syncState: SyncState | null;
927
960
  force: boolean;
928
961
  isCrossAppPush: boolean;
962
+ /**
963
+ * The environment is machine-local (#4117): `[app].name` is the shared
964
+ * tree's, never this app's, so it is out of the validated body.
965
+ */
966
+ localEnvironment?: boolean;
929
967
  client: Pick<ApiClient, "listIntegrations" | "listFunctions">;
930
968
  }): Promise<{
931
969
  parsedVars: Record<string, unknown> | null;
@@ -1013,13 +1051,23 @@ export declare function promptKindImmutableOutcome(storedKind: PromptKind | unde
1013
1051
  action: "immutable";
1014
1052
  }> | null;
1015
1053
  /**
1016
- * The one deprecation notice a prompt file using the FLAT chat spelling earns
1017
- * — #3626 §4, beside the `celContextAccess` notice's precedent.
1054
+ * The file-decidable refusals `config push` gives one config file — the
1055
+ * per-file body of `collectConfigFileValidationErrors`, shared with `config
1056
+ * pull` (#4160), which never keeps a local file push would refuse.
1018
1057
  *
1019
- * Advisory: the push continues and the keys are applied. `null` when the file
1020
- * is already written in the grouped spelling, so a migrated tree is silent.
1058
+ * `tables` are the tables whose unrecognized keys are checked here (none for a
1059
+ * workflow, whose own validator owns that message); declared types run over
1060
+ * every table of the surface.
1021
1061
  */
1022
- export declare function promptFlatChatKeyWarning(filePath: string, tomlData: any): string | null;
1062
+ export declare function configFileValidationMessages(filePath: string, tomlData: any, surface: ConfigObjectSurface, tables: readonly ConfigTable[]): string[];
1063
+ /**
1064
+ * Whether `config pull` must rewrite a local file whatever it says (#4160):
1065
+ * `config push` would refuse it, or it spells something in a deprecated form
1066
+ * pull exists to migrate (a bucket naming its rule set by id). Keeping such a
1067
+ * file because its VALUES match would leave the tree unpushable, or the
1068
+ * deprecation unresolved, after a pull that reported success.
1069
+ */
1070
+ export declare function pullMustRewrite(label: string, tomlData: any): boolean;
1023
1071
  export declare function collectConfigFileValidationErrors(configDir: string): ConfigFileValidationError[];
1024
1072
  /**
1025
1073
  * Every `functions/<key>.toml` whose file-decidable errors `config push` would
@@ -1524,6 +1572,21 @@ export declare function projectConfigPair(spec: ConfigDiffSpec, localParsed: any
1524
1572
  local: Record<string, any>;
1525
1573
  remote: Record<string, any>;
1526
1574
  };
1575
+ /**
1576
+ * One `config diff` row's verdict once both sides exist (#4116, DSO-4116-003).
1577
+ *
1578
+ * A type whose files name a rule set cannot be compared without the app's
1579
+ * rule-set listing: an unresolvable reference would read as a difference that
1580
+ * is not there. So when the listing failed the row says so rather than
1581
+ * comparing; otherwise `compare` decides.
1582
+ */
1583
+ export declare function configDiffRowVerdict(parsed: any, remote: any, compare: (parsed: any, remote: any) => {
1584
+ status: string;
1585
+ hint?: string;
1586
+ }, contentComparable: boolean): {
1587
+ status: string;
1588
+ hint?: string;
1589
+ };
1527
1590
  /**
1528
1591
  * One `config diff` row's content verdict for a registered type (#2880).
1529
1592
  *
@@ -1986,6 +2049,33 @@ export declare function countAppliedChanges(input: {
1986
2049
  * than taking the command down.
1987
2050
  */
1988
2051
  export declare function configSemanticHash(label: string, filePath: string, maps: ConfigDiffMaps): string | undefined;
2052
+ /**
2053
+ * Whether a local config file says what the file `config pull` would write
2054
+ * says (#4160) — the definition-projected field set `config diff` compares, so
2055
+ * a file diff calls Synced keeps its comments, key order and explicit defaults
2056
+ * through a pull.
2057
+ *
2058
+ * Both sides go through the same projection with the same context, so
2059
+ * `extra` is the context a reference is read through (a test case's lookups),
2060
+ * never server-only rows. As in diff, the file is paired by the identity it
2061
+ * states (or `filePath`'s name), and the fields it leaves unmanaged take the
2062
+ * server's values — so a kept file's baseline is the server's projection
2063
+ * (`pulledSemanticHash`), never the file's own.
2064
+ */
2065
+ export declare function sameConfigAs(label: string, serverContent: string, filePath: string, maps: ConfigDiffMaps, extra?: any): (localContent: string) => boolean;
2066
+ /**
2067
+ * The semantic baseline `config pull` stamps for a config file (#4160): the
2068
+ * projection of what the server serializes, whether the file was written or
2069
+ * kept. A kept file can leave unmanaged fields or its identity to the server,
2070
+ * so hashing it would record a baseline the server never had.
2071
+ */
2072
+ export declare function pulledSemanticHash(label: string, serverContent: string, maps: ConfigDiffMaps): string | undefined;
2073
+ /**
2074
+ * Whether a local TOML file parses to the same document as `serverContent`
2075
+ * (#4160): the comparison for `vars.toml`, which has no field definition
2076
+ * behind it, so only comments, key order and spelling are free.
2077
+ */
2078
+ export declare function sameTomlAs(serverContent: string): (localContent: string) => boolean;
1989
2079
  /**
1990
2080
  * The sync state `config push` writes into (#2731 B6, closing #2374).
1991
2081
  *
@@ -2172,7 +2262,9 @@ export declare function pullScripts(client: ApiClient, appId: string, configDir:
2172
2262
  * `config pull --only` (issue #2645): which transform names this pull may
2173
2263
  * write. Defaults to every one the server lists.
2174
2264
  */
2175
- selects?: (name: string) => boolean): Promise<{
2265
+ selects?: (name: string) => boolean,
2266
+ /** Counts each transform as written or left unchanged (#4160). */
2267
+ writes?: PullWriteTally): Promise<{
2176
2268
  scriptEntities: Record<string, {
2177
2269
  id: string;
2178
2270
  modifiedAt: string;
@@ -2261,7 +2353,9 @@ export declare function pushedFunctionBaseline(input: {
2261
2353
  * normalizes outside the tree, and the refusals are reported rather than
2262
2354
  * swallowed.
2263
2355
  */
2264
- export declare function pullFunctions(client: ApiClient, appId: string, configDir: string, logger?: (msg: string) => void, selects?: (key: string) => boolean): Promise<{
2356
+ export declare function pullFunctions(client: ApiClient, appId: string, configDir: string, logger?: (msg: string) => void, selects?: (key: string) => boolean,
2357
+ /** Counts each function file as written or left unchanged (#4160). */
2358
+ writes?: PullWriteTally): Promise<{
2265
2359
  functionEntities: Record<string, {
2266
2360
  id: string;
2267
2361
  modifiedAt: string;
@@ -2383,6 +2477,8 @@ export declare function pullTestCasesForBlock(params: {
2383
2477
  priorTestCaseEntities?: Record<string, any>;
2384
2478
  lookupMaps?: TestCaseLookupMaps;
2385
2479
  logger?: (message: string) => void;
2480
+ /** Counts each case file as written or left unchanged (#4160). */
2481
+ writes?: PullWriteTally;
2386
2482
  }): Promise<TestCasePullOutcome>;
2387
2483
  /**
2388
2484
  * One pull leg: every block of a type the pull selected (#2769).
@@ -2405,6 +2501,8 @@ export declare function pullTestCasesForBlocks(params: {
2405
2501
  priorTestCaseEntities?: Record<string, any>;
2406
2502
  lookupMaps?: TestCaseLookupMaps;
2407
2503
  logger?: (message: string) => void;
2504
+ /** Counts each case file as written or left unchanged (#4160). */
2505
+ writes?: PullWriteTally;
2408
2506
  }): Promise<{
2409
2507
  count: number;
2410
2508
  skippedBlocks: string[];