@theholocron/cli 3.54.0 → 3.55.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/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
- import { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, NormalizedAuthUser, Notifications, Observability, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, PullRequest, REQUIRED_CAPABILITIES, RepoRef, RepoSettings, ResolvedCapability, Ruleset, SecretScope, Secrets, Source, StatusCategory, Storage, StorageBranch, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti } from "./plugin/capabilities.mjs";
1
+ import { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Errors, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, Logs, NormalizedAuthUser, Notifications, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, PullRequest, REQUIRED_CAPABILITIES, RepoRef, RepoSettings, ResolvedCapability, Ruleset, SecretScope, Secrets, Source, StatusCategory, Storage, StorageBranch, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti } from "./plugin/capabilities.mjs";
2
2
  import { AuthError, RequestOptions, ResolveTokenConfig as ResolveTokenConfig$1, ResolveTokenInput, RestClient, RestClientConfig, createRestClient } from "@theholocron/http-client";
3
+ import { LogLevel } from "@theholocron/logger";
3
4
  //#region src/auth/auth-resolver.d.ts
4
5
  type ResolveTokenConfig = Omit<ResolveTokenConfig$1, "getKeyringToken">;
5
6
  /** Wraps `createResolveToken` from `@theholocron/http` and injects the
@@ -65,6 +66,14 @@ declare function deleteToken(provider: string): boolean;
65
66
  declare function listStoredProviders(): string[];
66
67
  //#endregion
67
68
  //#region src/config/config.d.ts
69
+ /** Structured-logging config — level only; credentials never live in config. */
70
+ interface LogConfig {
71
+ /**
72
+ * Default log level. The lowest-priority level source: `--verbose` /
73
+ * `--quiet` and `HOLOCRON_LOG_LEVEL` both outrank it.
74
+ */
75
+ level?: LogLevel;
76
+ }
68
77
  type ProviderOptions = Record<string, unknown>;
69
78
  /**
70
79
  * The shape a capability config package's default export must satisfy.
@@ -374,6 +383,14 @@ interface HolocronConfig {
374
383
  * { namespaces: ["HOLOCRON", "MY_CLI"] }
375
384
  */
376
385
  env?: EnvConfig;
386
+ /**
387
+ * Structured-logging config. Only the level belongs here — Axiom
388
+ * credentials come from env vars, never a committed file.
389
+ *
390
+ * @example
391
+ * { level: "debug" }
392
+ */
393
+ log?: LogConfig;
377
394
  }
378
395
  interface ResolvedTuple {
379
396
  provider: string;
@@ -409,6 +426,7 @@ interface ResolvedHolocronConfig {
409
426
  /** Resolved Pages config. `build` is guaranteed present when this field exists. */
410
427
  docs?: PagesConfig;
411
428
  env?: EnvConfig;
429
+ log?: LogConfig;
412
430
  }
413
431
  declare class ConfigError extends Error {
414
432
  name: string;
@@ -498,4 +516,4 @@ interface LoadedConfig {
498
516
  */
499
517
  declare function loadConfig(cwd: string): Promise<LoadedConfig>;
500
518
  //#endregion
501
- export { Analytics, AppConfig, Auth, AuthDescription, AuthError, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, Capability, CapabilityConfigPackage, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, ChromaticProjectConfig, Ci, CiRun, CiRunFilter, CiRunStatus, ComposedPreset, ConfigError, ConfigFileError, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, DocsConfig, DoctorConfig, EnsureResult, EnvConfig, Environment, EnvironmentReviewer, Environments, FeatureResolverConfig, HolocronConfig, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, LoadedConfig, MultiEntry, NormalizedAuthUser, Notifications, Observability, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, ProviderOptions, PullRequest, REQUIRED_CAPABILITIES, RawProviderEntry, RawProvidersConfig, RepoConfig, RepoProperties, RepoProtection, RepoRef, RepoSettings, type RequestOptions, ResolveTokenConfig, type ResolveTokenInput, ResolvedCapability, ResolvedHolocronConfig, ResolvedProviderEntry, ResolvedProvidersConfig, ResolvedTuple, type RestClient, type RestClientConfig, Ruleset, SecretScope, Secrets, SingleEntry, Source, StatusCategory, Storage, StorageBranch, StorybookDeployProject, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, WorkflowWithConfig, compose, createFeatureResolver, createResolveToken, createRestClient, defineConfig, deleteToken, getToken, isMulti, listStoredProviders, loadConfig, resolveConfig, resolveEntry, resolvePluginPackage, setToken };
519
+ export { Analytics, AppConfig, Auth, AuthDescription, AuthError, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, Capability, CapabilityConfigPackage, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, ChromaticProjectConfig, Ci, CiRun, CiRunFilter, CiRunStatus, ComposedPreset, ConfigError, ConfigFileError, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, DocsConfig, DoctorConfig, EnsureResult, EnvConfig, Environment, EnvironmentReviewer, Environments, Errors, FeatureResolverConfig, HolocronConfig, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, LoadedConfig, LogConfig, Logs, MultiEntry, NormalizedAuthUser, Notifications, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, ProviderOptions, PullRequest, REQUIRED_CAPABILITIES, RawProviderEntry, RawProvidersConfig, RepoConfig, RepoProperties, RepoProtection, RepoRef, RepoSettings, type RequestOptions, ResolveTokenConfig, type ResolveTokenInput, ResolvedCapability, ResolvedHolocronConfig, ResolvedProviderEntry, ResolvedProvidersConfig, ResolvedTuple, type RestClient, type RestClientConfig, Ruleset, SecretScope, Secrets, SingleEntry, Source, StatusCategory, Storage, StorageBranch, StorybookDeployProject, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, WorkflowWithConfig, compose, createFeatureResolver, createResolveToken, createRestClient, defineConfig, deleteToken, getToken, isMulti, listStoredProviders, loadConfig, resolveConfig, resolveEntry, resolvePluginPackage, setToken };
package/dist/index.mjs CHANGED
@@ -113,31 +113,6 @@ function createFeatureResolver(config) {
113
113
  }
114
114
  //#endregion
115
115
  //#region src/config/config.ts
116
- /**
117
- * `holocron.config.json` schema, parser, and provider resolution.
118
- *
119
- * ESLint-style entry forms:
120
- *
121
- * "source": "github" ← single, short
122
- * "deployment": ["vercel", { team: "rando" }] ← single, with options
123
- * "notifications": ["slack", "discord"] ← multi, short
124
- * "notifications": [
125
- * ["slack", { channel: "#ops" }],
126
- * ["discord", { webhook: "env:HOOK" }]
127
- * ] ← multi, with options
128
- *
129
- * Discriminator: an array entry is a `[provider, options]` tuple when
130
- * the length is 2 AND element[1] is a non-array, non-null object.
131
- * Otherwise it's a multi-provider list (string[] or tuple[]).
132
- *
133
- * Validation rules:
134
- * - `vault` is REQUIRED (every project has secrets somewhere)
135
- * - Entries for `'many'` capabilities are normalized to an array of
136
- * normalized tuples; entries for `'single'` capabilities are
137
- * normalized to one tuple
138
- * - Tokens / secret values never appear in config — providers read
139
- * them from env (or pull from `vault` at runtime)
140
- */
141
116
  var ConfigError = class extends Error {
142
117
  name = "ConfigError";
143
118
  };
@@ -235,7 +210,8 @@ function resolveConfig(raw) {
235
210
  agent: raw.agent,
236
211
  skills: raw.skills,
237
212
  docs,
238
- env: raw.env
213
+ env: raw.env,
214
+ log: raw.log
239
215
  };
240
216
  }
241
217
  //#endregion
@@ -9,10 +9,10 @@ import { ProviderApiError } from "@theholocron/http-client";
9
9
  * `CardinalityFor<K>` so config resolution + command code can branch
10
10
  * statically.
11
11
  *
12
- * See `.notes/tech-architecture.spec.md` for the design narrative
13
- * (status: proposed, issue: #74).
12
+ * See `.notes/archive/tech-architecture.spec.md` for the design narrative
13
+ * (issue: #74).
14
14
  */
15
- type CapabilityKey = "source" | "ci" | "secrets" | "environments" | "issues" | "deployment" | "storage" | "auth" | "vault" | "dns" | "tooling" | "notifications" | "analytics" | "observability" | "wiki" | "workers";
15
+ type CapabilityKey = "source" | "ci" | "secrets" | "environments" | "issues" | "deployment" | "storage" | "auth" | "vault" | "dns" | "tooling" | "notifications" | "analytics" | "errors" | "logs" | "wiki" | "workers";
16
16
  type Cardinality = "single" | "many";
17
17
  declare const CARDINALITY: {
18
18
  readonly source: "single";
@@ -28,7 +28,8 @@ declare const CARDINALITY: {
28
28
  readonly tooling: "many";
29
29
  readonly notifications: "many";
30
30
  readonly analytics: "many";
31
- readonly observability: "many";
31
+ readonly errors: "single";
32
+ readonly logs: "single";
32
33
  readonly wiki: "single";
33
34
  readonly workers: "single";
34
35
  };
@@ -577,6 +578,41 @@ interface Dns extends ProviderIdentity {
577
578
  upsertRecord(domain: string, record: DnsRecord): Promise<DnsRecord>;
578
579
  deleteRecord(domain: string, id: string): Promise<void>;
579
580
  }
581
+ interface Errors extends ProviderIdentity {
582
+ readonly key: "errors";
583
+ /** Returns the env var names the app reads at runtime for this provider. */
584
+ describe(): Promise<{
585
+ provider: string;
586
+ envKeys: string[];
587
+ }>;
588
+ whoami?(): Promise<{
589
+ org: string;
590
+ }>;
591
+ ensureProject?(input: {
592
+ name: string;
593
+ platform?: string;
594
+ }): Promise<{
595
+ dsn: string;
596
+ alreadyExists: boolean;
597
+ }>;
598
+ }
599
+ interface Logs extends ProviderIdentity {
600
+ readonly key: "logs";
601
+ /** Returns the env var names the app reads at runtime for this provider. */
602
+ describe(): Promise<{
603
+ provider: string;
604
+ envKeys: string[];
605
+ }>;
606
+ /** Verify the token by fetching the target dataset's info. */
607
+ whoami?(): Promise<{
608
+ ok: boolean;
609
+ dataset: string;
610
+ }>;
611
+ /** Create the aggregation dataset if it does not already exist. Idempotent. */
612
+ ensureDataset?(name: string): Promise<{
613
+ alreadyExists: boolean;
614
+ }>;
615
+ }
580
616
  interface ToolingDoctorReport {
581
617
  ok: boolean;
582
618
  message: string;
@@ -610,24 +646,6 @@ interface Analytics extends ProviderIdentity {
610
646
  alreadyExists: boolean;
611
647
  }>;
612
648
  }
613
- interface Observability extends ProviderIdentity {
614
- readonly key: "observability";
615
- /** Returns the env var names the app reads at runtime for this provider. */
616
- describe(): Promise<{
617
- provider: string;
618
- envKeys: string[];
619
- }>;
620
- whoami?(): Promise<{
621
- org: string;
622
- }>;
623
- ensureProject?(input: {
624
- name: string;
625
- platform?: string;
626
- }): Promise<{
627
- dsn: string;
628
- alreadyExists: boolean;
629
- }>;
630
- }
631
649
  interface WikiProvisionOpts {
632
650
  /** Project display name used in the wiki title (e.g. "Holocron"). */
633
651
  name?: string;
@@ -710,7 +728,8 @@ interface CapabilityImpls {
710
728
  tooling: Tooling;
711
729
  notifications: Notifications;
712
730
  analytics: Analytics;
713
- observability: Observability;
731
+ errors: Errors;
732
+ logs: Logs;
714
733
  wiki: Wiki;
715
734
  workers: Workers;
716
735
  }
@@ -719,4 +738,4 @@ type CardinalityFor<K extends CapabilityKey> = (typeof CARDINALITY)[K];
719
738
  type ResolvedCapability<K extends CapabilityKey> = CardinalityFor<K> extends "many" ? CapabilityImpls[K][] : CapabilityImpls[K];
720
739
  declare function isMulti<K extends CapabilityKey>(key: K): CardinalityFor<K> extends "many" ? true : false;
721
740
  //#endregion
722
- export { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, NormalizedAuthUser, Notifications, Observability, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, PullRequest, REQUIRED_CAPABILITIES, RepoRef, RepoSettings, ResolvedCapability, Ruleset, SecretScope, Secrets, Source, StatusCategory, Storage, StorageBranch, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti };
741
+ export { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Errors, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, Logs, NormalizedAuthUser, Notifications, PagesConfig, ParseWebhookInput, ProviderApiError, ProviderIdentity, PullRequest, REQUIRED_CAPABILITIES, RepoRef, RepoSettings, ResolvedCapability, Ruleset, SecretScope, Secrets, Source, StatusCategory, Storage, StorageBranch, TeamEntry, TeamPermission, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiDnsRecord, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti };
@@ -14,7 +14,8 @@ const CARDINALITY = {
14
14
  tooling: "many",
15
15
  notifications: "many",
16
16
  analytics: "many",
17
- observability: "many",
17
+ errors: "single",
18
+ logs: "single",
18
19
  wiki: "single",
19
20
  workers: "single"
20
21
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theholocron/cli",
3
- "version": "3.54.0",
3
+ "version": "3.55.1",
4
4
  "description": "The Holocron CLI — a pluggable, capability-based orchestrator for spinning up and operating software projects.",
5
5
  "keywords": [
6
6
  "cli",
@@ -47,11 +47,12 @@
47
47
  "@theholocron/env-utils": "^1.6.0",
48
48
  "@theholocron/github-client": "^1.14.2",
49
49
  "@theholocron/http-client": "^1.14.2",
50
- "@theholocron/registry-doc": "^1.9.0",
50
+ "@theholocron/registry-doc": "^1.10.0",
51
51
  "chalk": "^6.0.0",
52
52
  "ora": "^9.4.1",
53
53
  "tsx": "4.23.12",
54
- "yargs": "^18.1.0"
54
+ "yargs": "^18.1.0",
55
+ "@theholocron/logger": "3.55.1"
55
56
  },
56
57
  "devDependencies": {
57
58
  "@theholocron/eslint-config": "^7.32.1",
@@ -67,7 +68,7 @@
67
68
  "tsdown": "^0.22.14",
68
69
  "typescript": "^5.9.3",
69
70
  "vitest": "^4.1.11",
70
- "@theholocron/rollup-plugin-transform-template": "3.54.0"
71
+ "@theholocron/rollup-plugin-transform-template": "3.55.1"
71
72
  },
72
73
  "engines": {
73
74
  "node": ">=22.0.0"