@moda-ai/cli 1.33.0 → 1.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -166,7 +166,10 @@ A plain `--dry-run` uses deterministic discovery. Add `--analyst=claude`,
166
166
  `--analyst=codex`, `--analyst=cursor`, or `--analyst=auto` to preview agent-assisted
167
167
  discovery without saving the manifest, lockfile, or registry versions. Agent
168
168
  investigations have no fixed wall-clock timeout and consume the installed
169
- agent's usage; interrupt the command to cancel.
169
+ agent's usage; interrupt the command to cancel. Sync prints scan and verification
170
+ progress to stderr, including periodic analyst heartbeats while waiting. JSON
171
+ results on stdout remain unchanged; `--quiet` suppresses progress and
172
+ `--agent --stream` delivers progress as structured events.
170
173
 
171
174
  `--watch` starts with analysis and then watches mapped definitions; re-run sync
172
175
  to discover new sources that do not affect an existing mapping. You can also
@@ -175,6 +178,40 @@ with `prompts init --from-harness=<report>`. Discovery reports partial coverage:
175
178
  finding a prompt fragment does not prove that every composition or model call
176
179
  has been covered.
177
180
 
181
+ Prompt discovery keeps semantic role separate from mechanical extraction kind.
182
+ Independent review can classify a source as an authored definition, builder,
183
+ prompt transport, runtime context, non-prompt, or uncertain even when the
184
+ resolver stored it as text, messages, template, or builder. Usage is tracked
185
+ separately as active, conditional, display-only, or unknown, with an endpoint
186
+ verification flag. Automatic code/configuration registration requires an authored
187
+ definition or builder with independently reviewed active or conditional model use
188
+ and a local consumer citation. Custom framework hooks can qualify without a
189
+ recognized SDK binding. Consumer relationships are semantic reviewer judgments,
190
+ not deterministic dataflow proofs; locally valid citations alone do not establish
191
+ model use. The separate `endpointVerified` flag reports SDK provenance. Display-only sources stay visible as related; sources
192
+ with unknown use remain pending. Helpers that forward prompt configuration or carry
193
+ runtime context are retained as related discovery candidates and diagnostics,
194
+ but are not synced as prompt sources. Builder provenance remains the source
195
+ mapping and dependency evidence, so discovery does not claim complete
196
+ whole-codebase classification.
197
+
198
+ The reviewer receives the complete parser-selected definition and can inspect
199
+ surrounding relationships. Its definition citations, source hash, and source
200
+ stability are checked locally. Malformed review JSON gets one format-only repair
201
+ attempt; a repair that changes an already stated role or decision stays pending.
202
+
203
+ Before uploading, sync checks statically resolvable JavaScript/TypeScript lookups
204
+ into the repository's `.moda/prompts.lock.json`. A missing key stops the upload
205
+ and reports its source location. Preserve a stable runtime key by assigning it
206
+ to the intended source mapping, or update the lookup to the selected mapping key.
207
+ Dynamic lookups and other languages are not exhaustively checked; attribution
208
+ coverage remains partial. A real sync with candidates but no eligible sources
209
+ exits nonzero after printing discovery diagnostics; dry runs remain previews.
210
+
211
+ Configured mappings remain authoritative. To clean up sources previously
212
+ registered in error, remove their entries from `.moda/prompts.yml` and sync with
213
+ `--allow-untrack`. This removes local tracking, not historical registry versions.
214
+
178
215
  You can also configure `.moda/prompts.yml` directly:
179
216
 
180
217
  ```yaml
@@ -648,7 +648,7 @@ function validateConfig() {
648
648
  }
649
649
  }
650
650
 
651
- // ../../packages/harness-snapshot/src/policy.ts
651
+ // ../../../ModaObservability-prompt-sync/packages/harness-snapshot/src/policy.ts
652
652
  var MAX_SCANNED_FILE_BYTES = 512 * 1024;
653
653
  var DEFAULT_MAX_INVENTORY_FILES = 12000;
654
654
  var DEFAULT_MAX_INVENTORY_TEXT_BYTES = 48 * 1024 * 1024;
@@ -790,7 +790,7 @@ function isSecretishPath(path) {
790
790
  return name === ".env" || name.startsWith(".env.") || name.includes("secret") || name.includes("private-key") || name.endsWith(".pem");
791
791
  }
792
792
 
793
- // ../../packages/harness-snapshot/src/redact.ts
793
+ // ../../../ModaObservability-prompt-sync/packages/harness-snapshot/src/redact.ts
794
794
  var REDACTED = "[REDACTED]";
795
795
  var MAX_DEPTH = 256;
796
796
  var SECRET_KEYS = new Set([
@@ -887,7 +887,7 @@ function redactSnapshotText(text) {
887
887
  return { text: parts.join(""), redactionCount };
888
888
  }
889
889
 
890
- // ../../packages/harness-snapshot/src/pack.ts
890
+ // ../../../ModaObservability-prompt-sync/packages/harness-snapshot/src/pack.ts
891
891
  function utf8ByteLength(value) {
892
892
  let bytes = 0;
893
893
  for (let index = 0;index < value.length; index += 1) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  authFetch,
3
3
  getCachedLoginContext
4
- } from "./cli-yz99t7n8.js";
4
+ } from "./cli-eggpzt87.js";
5
5
  import {
6
6
  CliAccessError,
7
7
  CliInputError,
@@ -15,7 +15,7 @@ import {
15
15
  resolveTenantIdFromActiveProfile,
16
16
  saveCliConfig,
17
17
  writeSecretJsonFile
18
- } from "./cli-drabjmaj.js";
18
+ } from "./cli-0h32yvwq.js";
19
19
 
20
20
  // src/init/tenant.ts
21
21
  import { randomUUID } from "node:crypto";