@odla-ai/cli 0.32.1 → 0.33.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.
- package/dist/bin.cjs +396 -137
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-L6YTOTWU.js → chunk-YSQORU5J.js} +364 -133
- package/dist/chunk-YSQORU5J.js.map +1 -0
- package/dist/{cli-LYFPBGNH.js → cli-U436OLYW.js} +2 -2
- package/dist/index.cjs +365 -134
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +45 -2
- package/dist/index.d.ts +45 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-L6YTOTWU.js.map +0 -1
- /package/dist/{cli-LYFPBGNH.js.map → cli-U436OLYW.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -419,6 +419,35 @@ interface IntegrationProbe {
|
|
|
419
419
|
/** Expected unauthenticated HTTP status, normally 401. */
|
|
420
420
|
expectedStatus: number;
|
|
421
421
|
}
|
|
422
|
+
/**
|
|
423
|
+
* One tenant-vault secret a capability or app needs in order to work.
|
|
424
|
+
*
|
|
425
|
+
* This is the declaration half of the declaration/storage split: the contract
|
|
426
|
+
* is committed, the value never is. Declaring a secret does not store, read, or
|
|
427
|
+
* transmit it — `odla-ai secrets set` remains the only write path and values
|
|
428
|
+
* stay write-only afterwards. Declarations exist so `doctor` can tell "not set
|
|
429
|
+
* yet" apart from "not needed", so an agent can discover what to ask a human
|
|
430
|
+
* for instead of learning it from prose, and so `check:secrets` can prove the
|
|
431
|
+
* declared name is the name the runtime actually reads.
|
|
432
|
+
*/
|
|
433
|
+
interface IntegrationSecret {
|
|
434
|
+
/** Vault name, byte-identical to what `odla-ai secrets set <name>` writes and
|
|
435
|
+
* what the runtime passes to `getSecret`. Reserved slots keep their `$`. */
|
|
436
|
+
name: string;
|
|
437
|
+
/** What the secret is for, and what breaks without it. */
|
|
438
|
+
description: string;
|
|
439
|
+
/** Expected value prefix, e.g. `whsec_`. Advisory: never matched against a
|
|
440
|
+
* stored value (the CLI cannot read one back), only against a value on its
|
|
441
|
+
* way in. */
|
|
442
|
+
pattern?: string;
|
|
443
|
+
/** Platform-managed `$`-prefixed slot. Reserved secrets are never readable by
|
|
444
|
+
* an app key and are written by a dedicated command, not `secrets set`. */
|
|
445
|
+
reserved?: boolean;
|
|
446
|
+
/** Whether the capability is broken without it. Defaults to `true`; set
|
|
447
|
+
* `false` for secrets only some configurations need, so `doctor` reports them
|
|
448
|
+
* as available rather than missing. */
|
|
449
|
+
required?: boolean;
|
|
450
|
+
}
|
|
422
451
|
/** Structural, data-only capability descriptor consumed from
|
|
423
452
|
* `odla.config.mjs`. Capability packages do not depend on the CLI; their
|
|
424
453
|
* descriptors only need to conform to this shape. */
|
|
@@ -440,6 +469,8 @@ interface OdlaIntegration {
|
|
|
440
469
|
seeds?: IntegrationSeed[];
|
|
441
470
|
/** Read-only unauthenticated checks run against `links.<env>`. */
|
|
442
471
|
probes?: IntegrationProbe[];
|
|
472
|
+
/** Tenant-vault secrets this capability reads. Names only — never values. */
|
|
473
|
+
secrets?: IntegrationSecret[];
|
|
443
474
|
}
|
|
444
475
|
interface ClerkAuthConfig {
|
|
445
476
|
publishableKey?: string;
|
|
@@ -486,6 +517,9 @@ interface OdlaProjectConfig {
|
|
|
486
517
|
/** App capabilities composed into schema/rules/seeds. Integrations are npm
|
|
487
518
|
* modules, not hosted platform services, so they do not belong in services. */
|
|
488
519
|
integrations?: OdlaIntegration[];
|
|
520
|
+
/** Vault secrets this app needs beyond the ones its capabilities declare.
|
|
521
|
+
* Names and descriptions only; values are never authored here. */
|
|
522
|
+
secrets?: IntegrationSecret[];
|
|
489
523
|
db?: {
|
|
490
524
|
/** Inline SerializedSchema, JSON file, or JS module path exporting default/schema. */
|
|
491
525
|
schema?: unknown;
|
|
@@ -624,13 +658,22 @@ interface SmokeOptions {
|
|
|
624
658
|
stdout?: Pick<typeof console, "log" | "error">;
|
|
625
659
|
}
|
|
626
660
|
|
|
627
|
-
/**
|
|
628
|
-
|
|
661
|
+
/**
|
|
662
|
+
* The calendar half of `odla.config.mjs`: resolving the checked-in Google
|
|
663
|
+
* booking block into a controller payload, and validating it.
|
|
664
|
+
*
|
|
665
|
+
* Split out of config.ts because calendar validation and its four value
|
|
666
|
+
* guards are used by nothing else in config loading — the guards were private
|
|
667
|
+
* to this one validator already.
|
|
668
|
+
*/
|
|
629
669
|
/** Resolve the checked-in calendar block into one controller-safe env payload. */
|
|
630
670
|
declare function calendarServiceConfig(cfg: LoadedProjectConfig, env: string): CalendarServiceConfig;
|
|
631
671
|
/** Public Appointment Schedule URL to apply separately from connector config. */
|
|
632
672
|
declare function calendarBookingPageUrl(cfg: LoadedProjectConfig, env: string): string | null | undefined;
|
|
633
673
|
|
|
674
|
+
/** The Google OAuth scope that authorizes booking writes (events read/write). */
|
|
675
|
+
declare const GOOGLE_CALENDAR_EVENTS_SCOPE = "https://www.googleapis.com/auth/calendar.events";
|
|
676
|
+
|
|
634
677
|
/** Canonical SHA-256 identifier for normalized configuration or a frozen plan. */
|
|
635
678
|
type ConfigDigest = `sha256:${string}`;
|
|
636
679
|
/** Overall relationship between repository-managed intent and observed state. */
|
package/dist/index.d.ts
CHANGED
|
@@ -419,6 +419,35 @@ interface IntegrationProbe {
|
|
|
419
419
|
/** Expected unauthenticated HTTP status, normally 401. */
|
|
420
420
|
expectedStatus: number;
|
|
421
421
|
}
|
|
422
|
+
/**
|
|
423
|
+
* One tenant-vault secret a capability or app needs in order to work.
|
|
424
|
+
*
|
|
425
|
+
* This is the declaration half of the declaration/storage split: the contract
|
|
426
|
+
* is committed, the value never is. Declaring a secret does not store, read, or
|
|
427
|
+
* transmit it — `odla-ai secrets set` remains the only write path and values
|
|
428
|
+
* stay write-only afterwards. Declarations exist so `doctor` can tell "not set
|
|
429
|
+
* yet" apart from "not needed", so an agent can discover what to ask a human
|
|
430
|
+
* for instead of learning it from prose, and so `check:secrets` can prove the
|
|
431
|
+
* declared name is the name the runtime actually reads.
|
|
432
|
+
*/
|
|
433
|
+
interface IntegrationSecret {
|
|
434
|
+
/** Vault name, byte-identical to what `odla-ai secrets set <name>` writes and
|
|
435
|
+
* what the runtime passes to `getSecret`. Reserved slots keep their `$`. */
|
|
436
|
+
name: string;
|
|
437
|
+
/** What the secret is for, and what breaks without it. */
|
|
438
|
+
description: string;
|
|
439
|
+
/** Expected value prefix, e.g. `whsec_`. Advisory: never matched against a
|
|
440
|
+
* stored value (the CLI cannot read one back), only against a value on its
|
|
441
|
+
* way in. */
|
|
442
|
+
pattern?: string;
|
|
443
|
+
/** Platform-managed `$`-prefixed slot. Reserved secrets are never readable by
|
|
444
|
+
* an app key and are written by a dedicated command, not `secrets set`. */
|
|
445
|
+
reserved?: boolean;
|
|
446
|
+
/** Whether the capability is broken without it. Defaults to `true`; set
|
|
447
|
+
* `false` for secrets only some configurations need, so `doctor` reports them
|
|
448
|
+
* as available rather than missing. */
|
|
449
|
+
required?: boolean;
|
|
450
|
+
}
|
|
422
451
|
/** Structural, data-only capability descriptor consumed from
|
|
423
452
|
* `odla.config.mjs`. Capability packages do not depend on the CLI; their
|
|
424
453
|
* descriptors only need to conform to this shape. */
|
|
@@ -440,6 +469,8 @@ interface OdlaIntegration {
|
|
|
440
469
|
seeds?: IntegrationSeed[];
|
|
441
470
|
/** Read-only unauthenticated checks run against `links.<env>`. */
|
|
442
471
|
probes?: IntegrationProbe[];
|
|
472
|
+
/** Tenant-vault secrets this capability reads. Names only — never values. */
|
|
473
|
+
secrets?: IntegrationSecret[];
|
|
443
474
|
}
|
|
444
475
|
interface ClerkAuthConfig {
|
|
445
476
|
publishableKey?: string;
|
|
@@ -486,6 +517,9 @@ interface OdlaProjectConfig {
|
|
|
486
517
|
/** App capabilities composed into schema/rules/seeds. Integrations are npm
|
|
487
518
|
* modules, not hosted platform services, so they do not belong in services. */
|
|
488
519
|
integrations?: OdlaIntegration[];
|
|
520
|
+
/** Vault secrets this app needs beyond the ones its capabilities declare.
|
|
521
|
+
* Names and descriptions only; values are never authored here. */
|
|
522
|
+
secrets?: IntegrationSecret[];
|
|
489
523
|
db?: {
|
|
490
524
|
/** Inline SerializedSchema, JSON file, or JS module path exporting default/schema. */
|
|
491
525
|
schema?: unknown;
|
|
@@ -624,13 +658,22 @@ interface SmokeOptions {
|
|
|
624
658
|
stdout?: Pick<typeof console, "log" | "error">;
|
|
625
659
|
}
|
|
626
660
|
|
|
627
|
-
/**
|
|
628
|
-
|
|
661
|
+
/**
|
|
662
|
+
* The calendar half of `odla.config.mjs`: resolving the checked-in Google
|
|
663
|
+
* booking block into a controller payload, and validating it.
|
|
664
|
+
*
|
|
665
|
+
* Split out of config.ts because calendar validation and its four value
|
|
666
|
+
* guards are used by nothing else in config loading — the guards were private
|
|
667
|
+
* to this one validator already.
|
|
668
|
+
*/
|
|
629
669
|
/** Resolve the checked-in calendar block into one controller-safe env payload. */
|
|
630
670
|
declare function calendarServiceConfig(cfg: LoadedProjectConfig, env: string): CalendarServiceConfig;
|
|
631
671
|
/** Public Appointment Schedule URL to apply separately from connector config. */
|
|
632
672
|
declare function calendarBookingPageUrl(cfg: LoadedProjectConfig, env: string): string | null | undefined;
|
|
633
673
|
|
|
674
|
+
/** The Google OAuth scope that authorizes booking writes (events read/write). */
|
|
675
|
+
declare const GOOGLE_CALENDAR_EVENTS_SCOPE = "https://www.googleapis.com/auth/calendar.events";
|
|
676
|
+
|
|
634
677
|
/** Canonical SHA-256 identifier for normalized configuration or a frozen plan. */
|
|
635
678
|
type ConfigDigest = `sha256:${string}`;
|
|
636
679
|
/** Overall relationship between repository-managed intent and observed state. */
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odla-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Agent-operable CLI for odla provisioning, calendar consent and connection lifecycle, System AI administration, Worker secrets, security jobs, and smoke checks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://odla.ai/docs/packages/cli",
|