@indigoai-us/hq-cli 5.345.149 → 5.345.151

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 (34) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/command-catalog.generated.d.ts +18 -6
  3. package/dist/command-catalog.generated.js +21 -6
  4. package/dist/commands/_patterns.d.ts +6 -0
  5. package/dist/commands/_patterns.js +6 -0
  6. package/dist/commands/cloud-off-gate.d.ts +138 -0
  7. package/dist/commands/cloud-off-gate.js +234 -0
  8. package/dist/commands/cloud.d.ts +7 -0
  9. package/dist/commands/cloud.js +59 -17
  10. package/dist/commands/core-handoff.js +6 -1
  11. package/dist/commands/groups.js +9 -6
  12. package/dist/commands/lanes-questions.js +7 -4
  13. package/dist/commands/lanes.js +13 -6
  14. package/dist/commands/meetings.js +7 -3
  15. package/dist/commands/members.d.ts +35 -0
  16. package/dist/commands/members.js +65 -14
  17. package/dist/commands/secrets.d.ts +5 -0
  18. package/dist/commands/secrets.js +11 -6
  19. package/dist/hq-cloud-sync-runner/bin/sync-runner.js +63282 -62480
  20. package/dist/hq-cloud-sync-runner/package.json +1 -1
  21. package/dist/lib/daemon/catalog.d.ts +7 -0
  22. package/dist/lib/daemon/catalog.js +10 -1
  23. package/dist/lib/daemon/run.js +13 -0
  24. package/dist/lib/flag-registry-worker-source.generated.d.ts +1 -1
  25. package/dist/lib/flag-registry-worker-source.generated.js +1 -1
  26. package/dist/lib/lanes/index.d.ts +1 -1
  27. package/dist/lib/lanes/index.js +1 -1
  28. package/dist/lib/lanes/links.js +27 -11
  29. package/dist/lib/lanes/store.d.ts +11 -0
  30. package/dist/lib/lanes/store.js +20 -0
  31. package/dist/lib/lanes/watch.js +5 -3
  32. package/dist/lib/vault-sync-switches.d.ts +41 -0
  33. package/dist/lib/vault-sync-switches.js +86 -0
  34. package/package.json +8 -8
@@ -60,7 +60,7 @@ import { fastFlagEnabledDefaultOn } from "../native-fast-route.js";
60
60
  import { MULTI_COMPANY_SESSION_LOCK_FLAG } from "../lib/cli-flag-keys.js";
61
61
  import { secretsExecChildExitCode } from "../utils/child-wrapper-exit.js";
62
62
  import { isPlanGateError } from "../utils/plan-gate-error.js";
63
- import { SECRET_NAME_PATTERN, GROUP_ID_PATTERN, EMAIL_PATTERN } from "./_patterns.js";
63
+ import { SECRET_NAME_PATTERN, GROUP_ID_PATTERN, EMAIL_PATTERN, OUTPOST_UID_PATTERN, } from "./_patterns.js";
64
64
  import { describeSecretsScope, formatSecretSaved, formatSecretsListEmpty, formatSecretsListHeader, } from "./secrets-scope.js";
65
65
  import { vaultApiFetch, getCompanyUid, getEntityUid, looksLikeCompanyUid, } from "../utils/vault-api.js";
66
66
  import { formatApiKeyCapabilityDenial, requireApiKeyCapability, resolveVaultCredentialForCapability, } from "../utils/resolve-vault-credential.js";
@@ -277,7 +277,7 @@ function promptSecretInteractively() {
277
277
  process.stdin.resume();
278
278
  });
279
279
  }
280
- function parseSecretAclPrincipal(principal) {
280
+ export function parseSecretAclPrincipal(principal) {
281
281
  const p = principal.trim();
282
282
  if (p === "@all") {
283
283
  // Company-wide grant: every active member of the company. The server
@@ -290,7 +290,12 @@ function parseSecretAclPrincipal(principal) {
290
290
  if (GROUP_ID_PATTERN.test(p)) {
291
291
  return { granteeType: "group", granteeId: p };
292
292
  }
293
- console.error(chalk.red(`Invalid principal '${principal}': must be '@all', an email address, or a group id matching grp_<alphanumeric, underscore, hyphen>`));
293
+ if (OUTPOST_UID_PATTERN.test(p)) {
294
+ // The company Outpost rides the person grantee slot; the server checks
295
+ // that this id is the company's active Outpost.
296
+ return { granteeType: "person", granteeId: p };
297
+ }
298
+ console.error(chalk.red(`Invalid principal '${principal}': must be '@all', an email address, a group id matching grp_<alphanumeric, underscore, hyphen>, or a company Outpost id (out_…)`));
294
299
  return null;
295
300
  }
296
301
  function describeSecretAclPrincipal(principal) {
@@ -1312,8 +1317,8 @@ export function registerSecretsCommand(program) {
1312
1317
  });
1313
1318
  secrets
1314
1319
  .command("share <path>")
1315
- .description("Share a secret with an email address, group, or the entire company (@all)")
1316
- .requiredOption("--with <principal>", "Email address, group id, or @all (entire company) to share with")
1320
+ .description("Share a secret with an email address, group, company Outpost (out_…), or the entire company (@all)")
1321
+ .requiredOption("--with <principal>", "Email address, group id, out_ Outpost id, or @all (entire company) to share with")
1317
1322
  .requiredOption("--permission <level>", "Permission level: read | write | admin")
1318
1323
  .action(async (path, opts) => {
1319
1324
  try {
@@ -1376,7 +1381,7 @@ export function registerSecretsCommand(program) {
1376
1381
  secrets
1377
1382
  .command("unshare <path>")
1378
1383
  .description("Remove a grant from a secret")
1379
- .requiredOption("--from <principal>", "Email address, group id, or @all (entire company) to remove")
1384
+ .requiredOption("--from <principal>", "Email address, group id, out_ Outpost id, or @all (entire company) to remove")
1380
1385
  .action(async (path, opts) => {
1381
1386
  try {
1382
1387
  rejectIfPersonal(secrets.opts(), "unshare");