@theholocron/cli 5.0.0-alpha.129 → 5.0.0-alpha.133
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 +48 -40
- package/dist/cli.mjs +810 -594
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +21 -21
- package/dist/index.mjs +5 -5
- package/dist/plugin/capabilities.d.mts +49 -3
- package/dist/plugin/capabilities.mjs +1 -0
- package/package.json +6 -6
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordRequest, 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, 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, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordRequest, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Errors, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, Logs, Monitoring, MonitoringAssertion, MonitoringAssertionComparison, MonitoringAssertionSource, MonitoringCheck, MonitoringCheckInput, MonitoringHttpMethod, 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, 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
3
|
import { ConfigFileError } from "@theholocron/datapad";
|
|
4
4
|
import { LogLevel } from "@theholocron/observability/core";
|
|
@@ -155,7 +155,7 @@ interface DocsConfig {
|
|
|
155
155
|
* GitHub Pages build source.
|
|
156
156
|
* "workflow" → GitHub Actions (PUT { build_type: "workflow" })
|
|
157
157
|
* "branch" → classic gh-pages branch (PUT { build_type: "legacy", source: { branch: "gh-pages", path: "/" } })
|
|
158
|
-
* When absent, Pages is not managed by `holocron setup`.
|
|
158
|
+
* When absent, Pages is not managed by `holocron repo setup`.
|
|
159
159
|
*/
|
|
160
160
|
build?: "workflow" | "branch";
|
|
161
161
|
/**
|
|
@@ -182,7 +182,7 @@ interface RepoConfig {
|
|
|
182
182
|
* Sentinel's `validateConfig()` reads (D6: the App only ever reads config
|
|
183
183
|
* from the repo's default branch, never a PR ref, as a security boundary
|
|
184
184
|
* — never widen that to read PR branches instead of fixing this field).
|
|
185
|
-
* Synced by `holocron setup`. Omit to leave GitHub's current setting
|
|
185
|
+
* Synced by `holocron repo setup`. Omit to leave GitHub's current setting
|
|
186
186
|
* untouched — most repos never need this. Exists for a repo using a
|
|
187
187
|
* `main`/`alpha` prerelease-channel split (CLAUDE.md's Releases section)
|
|
188
188
|
* where active development happens on a non-`main` branch: set this to
|
|
@@ -192,7 +192,7 @@ interface RepoConfig {
|
|
|
192
192
|
*/
|
|
193
193
|
defaultBranch?: string;
|
|
194
194
|
/**
|
|
195
|
-
* Branch protection preset applied by `holocron setup`. When omitted,
|
|
195
|
+
* Branch protection preset applied by `holocron repo setup`. When omitted,
|
|
196
196
|
* no protection is applied and no `branch_protection_level` property is set.
|
|
197
197
|
* Required-status-check contexts for `"strict"` are derived from the task
|
|
198
198
|
* manifest — `{ required: true }` tasks + top-level `extraRequiredChecks`
|
|
@@ -200,7 +200,7 @@ interface RepoConfig {
|
|
|
200
200
|
*/
|
|
201
201
|
protection?: RepoProtection;
|
|
202
202
|
/**
|
|
203
|
-
* GitHub teams granted repository access. Synced by `holocron setup`, which
|
|
203
|
+
* GitHub teams granted repository access. Synced by `holocron repo setup`, which
|
|
204
204
|
* also writes `.github/CODEOWNERS` for teams with write-or-higher permission.
|
|
205
205
|
* String shorthand defaults to `push` (Write).
|
|
206
206
|
*/
|
|
@@ -300,7 +300,7 @@ interface StorybookDeployProject {
|
|
|
300
300
|
* `run-chromatic` accepts either a plain boolean (single-project) or a
|
|
301
301
|
* `ChromaticProjectConfig[]` object (multi-project monorepo).
|
|
302
302
|
*
|
|
303
|
-
* `docs` / `storybook` are high-level deploy shorthand that `holocron setup`
|
|
303
|
+
* `docs` / `storybook` are high-level deploy shorthand that `holocron repo setup`
|
|
304
304
|
* translates to `type` / `storybook-projects` before writing the thin caller.
|
|
305
305
|
* They also drive automatic `paths:` derivation so you never need to write
|
|
306
306
|
* `paths:` manually for deploy entries.
|
|
@@ -339,7 +339,7 @@ interface HolocronConfig {
|
|
|
339
339
|
/** Project name. Derived from package.json when absent. */
|
|
340
340
|
name?: string;
|
|
341
341
|
description?: string;
|
|
342
|
-
/** Project homepage URL. Synced to package.json#homepage and the GitHub repo's website field by `holocron sync`. */
|
|
342
|
+
/** Project homepage URL. Synced to package.json#homepage and the GitHub repo's website field by `holocron repo sync`. */
|
|
343
343
|
homepage?: string;
|
|
344
344
|
/**
|
|
345
345
|
* Active org name for namespaced keyring lookup. When set, token resolution
|
|
@@ -378,7 +378,7 @@ interface HolocronConfig {
|
|
|
378
378
|
* "knowledge.wiki" | "knowledge.docs" | "knowledge.components" |
|
|
379
379
|
* "review" | "tag" | "stale" | "greetings" | "dependencies" | "bookkeeping"
|
|
380
380
|
*
|
|
381
|
-
* `holocron setup` writes `.github/workflows/<name>.yml` for each entry,
|
|
381
|
+
* `holocron repo setup` writes `.github/workflows/<name>.yml` for each entry,
|
|
382
382
|
* calling the corresponding reusable workflow in `theholocron/.github`.
|
|
383
383
|
* Files are overwritten on each run — they are generated artifacts.
|
|
384
384
|
*
|
|
@@ -427,7 +427,7 @@ interface HolocronConfig {
|
|
|
427
427
|
* }
|
|
428
428
|
* ```
|
|
429
429
|
* Each `tokenName` maps to a repository secret named
|
|
430
|
-
* `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`. `holocron setup` expands this
|
|
430
|
+
* `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`. `holocron repo setup` expands this
|
|
431
431
|
* to the flat `run-chromatic: true` + `chromatic-projects: <json>` inputs
|
|
432
432
|
* that the reusable workflow accepts.
|
|
433
433
|
*
|
|
@@ -437,7 +437,7 @@ interface HolocronConfig {
|
|
|
437
437
|
*/
|
|
438
438
|
tasks?: Array<string | TaskEntryConfig>;
|
|
439
439
|
/**
|
|
440
|
-
* Opt out of `holocron sync`'s `package.json` script writes. Default `true`.
|
|
440
|
+
* Opt out of `holocron repo sync`'s `package.json` script writes. Default `true`.
|
|
441
441
|
*/
|
|
442
442
|
syncScripts?: boolean;
|
|
443
443
|
/**
|
|
@@ -448,15 +448,15 @@ interface HolocronConfig {
|
|
|
448
448
|
holocronScript?: string;
|
|
449
449
|
/**
|
|
450
450
|
* Required status-check contexts not backed by a `required` task (codecov
|
|
451
|
-
* gates, the bundle-build check, …). `holocron setup` appends these to the
|
|
451
|
+
* gates, the bundle-build check, …). `holocron repo setup` appends these to the
|
|
452
452
|
* task-derived list from `astromech.requiredChecks()`.
|
|
453
453
|
*/
|
|
454
454
|
extraRequiredChecks?: string[];
|
|
455
455
|
/**
|
|
456
|
-
* Git hooks `holocron setup` installs. `true` / `{ prePush: true }` writes
|
|
456
|
+
* Git hooks `holocron repo setup` installs. `true` / `{ prePush: true }` writes
|
|
457
457
|
* `.husky/pre-push` (runs `holocron run ci` before every push); `false` /
|
|
458
458
|
* `{ prePush: false }` opts out. Omitted → on for `protection: "strict"`,
|
|
459
|
-
* off otherwise. `--hooks` / `--no-hooks` on `holocron setup` override.
|
|
459
|
+
* off otherwise. `--hooks` / `--no-hooks` on `holocron repo setup` override.
|
|
460
460
|
*/
|
|
461
461
|
hooks?: boolean | {
|
|
462
462
|
prePush?: boolean;
|
|
@@ -465,7 +465,7 @@ interface HolocronConfig {
|
|
|
465
465
|
apps?: AppConfig[];
|
|
466
466
|
doctor?: DoctorConfig;
|
|
467
467
|
/**
|
|
468
|
-
* Agent runtime that determines where skills are installed by `holocron setup`.
|
|
468
|
+
* Agent runtime that determines where skills are installed by `holocron repo setup`.
|
|
469
469
|
* Skills are installed to `.agents/skills/<name>/` (canonical) with a
|
|
470
470
|
* relative symlink at the agent-specific path:
|
|
471
471
|
* - `"claude"` → `.claude/skills/<name>` → `../../.agents/skills/<name>`
|
|
@@ -473,7 +473,7 @@ interface HolocronConfig {
|
|
|
473
473
|
*/
|
|
474
474
|
agent?: "claude" | "codex" | "gemini";
|
|
475
475
|
/**
|
|
476
|
-
* Skill names from `@theholocron/skills` to install during `holocron setup`.
|
|
476
|
+
* Skill names from `@theholocron/skills` to install during `holocron repo setup`.
|
|
477
477
|
* Installed paths are gitignored and managed by setup — do not commit them.
|
|
478
478
|
*
|
|
479
479
|
* @example
|
|
@@ -481,7 +481,7 @@ interface HolocronConfig {
|
|
|
481
481
|
*/
|
|
482
482
|
skills?: string[];
|
|
483
483
|
/**
|
|
484
|
-
* GitHub Pages configuration. When present, `holocron setup` calls the
|
|
484
|
+
* GitHub Pages configuration. When present, `holocron repo setup` calls the
|
|
485
485
|
* Pages API using `HOLOCRON_DEPLOY_TOKEN` (requires `pages:write` + `repo` scope).
|
|
486
486
|
* When absent, Pages is left as-is.
|
|
487
487
|
*
|
|
@@ -770,7 +770,7 @@ declare function loadConfig(cwd: string): Promise<LoadedConfig>;
|
|
|
770
770
|
//#region src/editorconfig/config.d.ts
|
|
771
771
|
/**
|
|
772
772
|
* The paths editorconfig-checker skips, read from the same
|
|
773
|
-
* `editorconfig-checker.json` template `holocron setup` writes as a repo's
|
|
773
|
+
* `editorconfig-checker.json` template `holocron repo setup` writes as a repo's
|
|
774
774
|
* `.editorconfig-checker.json` — so Sentinel's central editorconfig check
|
|
775
775
|
* (holocron#927) excludes exactly what CI's editorconfig-checker does, from
|
|
776
776
|
* one source.
|
|
@@ -815,10 +815,10 @@ declare const PRETTIER_IGNORE_PATTERNS: string[];
|
|
|
815
815
|
/**
|
|
816
816
|
* The org's canonical `alex` (inclusive-language) config, as raw parsed
|
|
817
817
|
* data rather than the pre-rendered file strings `createRcConfig()`/
|
|
818
|
-
* `createIgnoreConfig()` produce for `holocron setup` to write into a
|
|
818
|
+
* `createIgnoreConfig()` produce for `holocron repo setup` to write into a
|
|
819
819
|
* repo's own `.alexrc.json`/`.alexignore`.
|
|
820
820
|
*
|
|
821
|
-
* `.alexrc.json` is explicitly "generated by `holocron setup` — do not
|
|
821
|
+
* `.alexrc.json` is explicitly "generated by `holocron repo setup` — do not
|
|
822
822
|
* edit manually" (this repo's own `AGENTS.md`) — the real source of truth
|
|
823
823
|
* is this JSON file, one canonical copy, not each repo's synced one. A
|
|
824
824
|
* central Sentinel check (holocron#769/#793) reads it directly rather
|
|
@@ -833,11 +833,11 @@ declare const ALEX_CONFIG: {
|
|
|
833
833
|
* Glob-ish path patterns `alex` skips. Kept as a literal here rather than
|
|
834
834
|
* importing `../templates/configs/alexjs/alexignore` directly — that file
|
|
835
835
|
* (like `commit-msg`/`pre-push`) is deliberately extensionless, matching
|
|
836
|
-
* the real filename `holocron setup` writes, which ECMAScript's own
|
|
836
|
+
* the real filename `holocron repo setup` writes, which ECMAScript's own
|
|
837
837
|
* module resolution (`moduleResolution: "nodenext"`) can't import across
|
|
838
838
|
* a package boundary without an extension. Keep in sync with that file by
|
|
839
839
|
* hand; it changes rarely.
|
|
840
840
|
*/
|
|
841
841
|
declare const ALEX_IGNORE_PATTERNS: string[];
|
|
842
842
|
//#endregion
|
|
843
|
-
export { ALEX_CONFIG, ALEX_IGNORE_PATTERNS, Analytics, AppConfig, Auth, AuthDescription, AuthError, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, Capability, CapabilityConfigPackage, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, ChromaticProjectConfig, Ci, CiRun, CiRunFilter, CiRunStatus, CommitMessageViolation, ComposedPreset, ConfigError, ConfigFileError, ConnectionStringOptions, CreateAuthUserInput, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, DeriveProfileInput, Dns, DnsRecord, DnsRecordRequest, DnsRecordType, DocsConfig, DoctorConfig, EDITORCONFIG_CHECKER_EXCLUDE, EnsureResult, EnvConfig, Environment, EnvironmentReviewer, Environments, Errors, EslintConfig, FeatureResolverConfig, HolocronConfig, HolocronProfile, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, LintCommitMsgFileResult, LoadedConfig, LogConfig, Logs, MultiEntry, NormalizedAuthUser, Notifications, PRETTIER_IGNORE_PATTERNS, PackageJsonLike, 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, TaskEntryConfig, TeamEntry, TeamPermission, TelemetryConfig, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, type VerifyTokenFailure, type VerifyTokenResult, type VerifyTokenSuccess, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiProvisionOpts, WikiProxyConfig, Workers, WorkflowWithConfig, compose, createFeatureResolver, createResolveToken, createRestClient, defineConfig, deleteToken, deriveCapabilities, deriveCompliance, deriveProfile, deriveStack, getToken, isEditorConfigExcluded, isMulti, lintCommitMessage, lintCommitMsgFile, listStoredProviders, loadConfig, missingCapabilities, readWorkspacePackageJsons, resolveConfig, resolveEntry, resolvePluginPackage, setToken };
|
|
843
|
+
export { ALEX_CONFIG, ALEX_IGNORE_PATTERNS, Analytics, AppConfig, Auth, AuthDescription, AuthError, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, Capability, CapabilityConfigPackage, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, ChromaticProjectConfig, Ci, CiRun, CiRunFilter, CiRunStatus, CommitMessageViolation, ComposedPreset, ConfigError, ConfigFileError, ConnectionStringOptions, CreateAuthUserInput, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, DeriveProfileInput, Dns, DnsRecord, DnsRecordRequest, DnsRecordType, DocsConfig, DoctorConfig, EDITORCONFIG_CHECKER_EXCLUDE, EnsureResult, EnvConfig, Environment, EnvironmentReviewer, Environments, Errors, EslintConfig, FeatureResolverConfig, HolocronConfig, HolocronProfile, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, LintCommitMsgFileResult, LoadedConfig, LogConfig, Logs, Monitoring, MonitoringAssertion, MonitoringAssertionComparison, MonitoringAssertionSource, MonitoringCheck, MonitoringCheckInput, MonitoringHttpMethod, MultiEntry, NormalizedAuthUser, Notifications, PRETTIER_IGNORE_PATTERNS, PackageJsonLike, 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, TaskEntryConfig, TeamEntry, TeamPermission, TelemetryConfig, Tooling, ToolingDoctorReport, TrackerDoctorReport, TrackerUser, Vault, type VerifyTokenFailure, type VerifyTokenResult, type VerifyTokenSuccess, WebhookDashboardInfo, WebhookVerificationError, Wiki, WikiProvisionOpts, WikiProxyConfig, Workers, WorkflowWithConfig, compose, createFeatureResolver, createResolveToken, createRestClient, defineConfig, deleteToken, deriveCapabilities, deriveCompliance, deriveProfile, deriveStack, getToken, isEditorConfigExcluded, isMulti, lintCommitMessage, lintCommitMsgFile, listStoredProviders, loadConfig, missingCapabilities, readWorkspacePackageJsons, resolveConfig, resolveEntry, resolvePluginPackage, setToken };
|
package/dist/index.mjs
CHANGED
|
@@ -186,7 +186,7 @@ function deriveCapabilities(providers) {
|
|
|
186
186
|
return Object.keys(providers ?? {}).sort();
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
* `source` + `ci` are the minimal baseline every repo `holocron setup`
|
|
189
|
+
* `source` + `ci` are the minimal baseline every repo `holocron repo setup`
|
|
190
190
|
* touches wires — every `holocron.config.ts` in this org already satisfies
|
|
191
191
|
* this, so `non-compliant` here means drift (a provider manually removed
|
|
192
192
|
* after setup), not an unmet aspirational policy. Deliberately not a richer
|
|
@@ -564,7 +564,7 @@ function parseGitRemoteUrl(url) {
|
|
|
564
564
|
//#region src/editorconfig/config.ts
|
|
565
565
|
/**
|
|
566
566
|
* The paths editorconfig-checker skips, read from the same
|
|
567
|
-
* `editorconfig-checker.json` template `holocron setup` writes as a repo's
|
|
567
|
+
* `editorconfig-checker.json` template `holocron repo setup` writes as a repo's
|
|
568
568
|
* `.editorconfig-checker.json` — so Sentinel's central editorconfig check
|
|
569
569
|
* (holocron#927) excludes exactly what CI's editorconfig-checker does, from
|
|
570
570
|
* one source.
|
|
@@ -593,10 +593,10 @@ function isEditorConfigExcluded(path) {
|
|
|
593
593
|
/**
|
|
594
594
|
* The org's canonical `alex` (inclusive-language) config, as raw parsed
|
|
595
595
|
* data rather than the pre-rendered file strings `createRcConfig()`/
|
|
596
|
-
* `createIgnoreConfig()` produce for `holocron setup` to write into a
|
|
596
|
+
* `createIgnoreConfig()` produce for `holocron repo setup` to write into a
|
|
597
597
|
* repo's own `.alexrc.json`/`.alexignore`.
|
|
598
598
|
*
|
|
599
|
-
* `.alexrc.json` is explicitly "generated by `holocron setup` — do not
|
|
599
|
+
* `.alexrc.json` is explicitly "generated by `holocron repo setup` — do not
|
|
600
600
|
* edit manually" (this repo's own `AGENTS.md`) — the real source of truth
|
|
601
601
|
* is this JSON file, one canonical copy, not each repo's synced one. A
|
|
602
602
|
* central Sentinel check (holocron#769/#793) reads it directly rather
|
|
@@ -620,7 +620,7 @@ const ALEX_CONFIG = { allow: [
|
|
|
620
620
|
* Glob-ish path patterns `alex` skips. Kept as a literal here rather than
|
|
621
621
|
* importing `../templates/configs/alexjs/alexignore` directly — that file
|
|
622
622
|
* (like `commit-msg`/`pre-push`) is deliberately extensionless, matching
|
|
623
|
-
* the real filename `holocron setup` writes, which ECMAScript's own
|
|
623
|
+
* the real filename `holocron repo setup` writes, which ECMAScript's own
|
|
624
624
|
* module resolution (`moduleResolution: "nodenext"`) can't import across
|
|
625
625
|
* a package boundary without an extension. Keep in sync with that file by
|
|
626
626
|
* hand; it changes rarely.
|
|
@@ -12,7 +12,7 @@ import { ProviderApiError } from "@theholocron/http-client";
|
|
|
12
12
|
* See `docs/wiki/specifications/tech-architecture.spec.md` for the design narrative
|
|
13
13
|
* (issue: #74).
|
|
14
14
|
*/
|
|
15
|
-
type CapabilityKey = "source" | "ci" | "secrets" | "environments" | "issues" | "deployment" | "storage" | "auth" | "vault" | "dns" | "tooling" | "notifications" | "analytics" | "errors" | "logs" | "wiki" | "workers";
|
|
15
|
+
type CapabilityKey = "source" | "ci" | "secrets" | "environments" | "issues" | "deployment" | "storage" | "auth" | "vault" | "dns" | "tooling" | "notifications" | "analytics" | "errors" | "logs" | "monitoring" | "wiki" | "workers";
|
|
16
16
|
type Cardinality = "single" | "many";
|
|
17
17
|
declare const CARDINALITY: {
|
|
18
18
|
readonly source: "single";
|
|
@@ -30,6 +30,7 @@ declare const CARDINALITY: {
|
|
|
30
30
|
readonly analytics: "many";
|
|
31
31
|
readonly errors: "single";
|
|
32
32
|
readonly logs: "single";
|
|
33
|
+
readonly monitoring: "single";
|
|
33
34
|
readonly wiki: "single";
|
|
34
35
|
readonly workers: "single";
|
|
35
36
|
};
|
|
@@ -389,7 +390,7 @@ interface Deployment extends ProviderIdentity {
|
|
|
389
390
|
readonly key: "deployment";
|
|
390
391
|
/**
|
|
391
392
|
* Custom domain declared in the deployment provider's configuration.
|
|
392
|
-
* `holocron setup` attaches it to the configured project and hands any
|
|
393
|
+
* `holocron repo setup` attaches it to the configured project and hands any
|
|
393
394
|
* returned verification record to the `dns` capability.
|
|
394
395
|
*/
|
|
395
396
|
readonly domain?: string;
|
|
@@ -678,6 +679,50 @@ interface Logs extends ProviderIdentity {
|
|
|
678
679
|
alreadyExists: boolean;
|
|
679
680
|
}>;
|
|
680
681
|
}
|
|
682
|
+
type MonitoringAssertionSource = "status_code" | "response_time" | "body" | "header";
|
|
683
|
+
type MonitoringAssertionComparison = "equals" | "not_equals" | "contains" | "not_contains" | "greater_than" | "less_than";
|
|
684
|
+
interface MonitoringAssertion {
|
|
685
|
+
source: MonitoringAssertionSource;
|
|
686
|
+
comparison: MonitoringAssertionComparison;
|
|
687
|
+
/** Header name / JSON path — required when `source` needs one (e.g. `"header"`). */
|
|
688
|
+
property?: string;
|
|
689
|
+
target?: string;
|
|
690
|
+
}
|
|
691
|
+
type MonitoringHttpMethod = "GET" | "POST" | "PUT" | "HEAD" | "DELETE" | "PATCH";
|
|
692
|
+
interface MonitoringCheckInput {
|
|
693
|
+
/** Also the idempotency key — `ensureCheck` finds-or-creates by this name. */
|
|
694
|
+
name: string;
|
|
695
|
+
url: string;
|
|
696
|
+
method?: MonitoringHttpMethod;
|
|
697
|
+
/** Minutes between runs. Adapters round to their own supported values. */
|
|
698
|
+
frequency?: number;
|
|
699
|
+
assertions?: MonitoringAssertion[];
|
|
700
|
+
activated?: boolean;
|
|
701
|
+
}
|
|
702
|
+
interface MonitoringCheck {
|
|
703
|
+
id: string;
|
|
704
|
+
name: string;
|
|
705
|
+
}
|
|
706
|
+
interface Monitoring extends ProviderIdentity {
|
|
707
|
+
readonly key: "monitoring";
|
|
708
|
+
/**
|
|
709
|
+
* Checks this provider is configured to ensure exist — populated from
|
|
710
|
+
* the provider's own config (`holocron.config.ts`'s provider tuple),
|
|
711
|
+
* the same place `Deployment.domain` comes from. `holocron repo setup`
|
|
712
|
+
* loops this list and calls `ensureCheck` for each; empty when none
|
|
713
|
+
* are configured.
|
|
714
|
+
*/
|
|
715
|
+
readonly checks: readonly MonitoringCheckInput[];
|
|
716
|
+
/** Auth sanity-check. Throws ProviderApiError on auth failure. */
|
|
717
|
+
whoami?(): Promise<{
|
|
718
|
+
ok: boolean;
|
|
719
|
+
}>;
|
|
720
|
+
/** Idempotent find-or-create-or-update by `input.name`. */
|
|
721
|
+
ensureCheck(input: MonitoringCheckInput): Promise<{
|
|
722
|
+
check: MonitoringCheck;
|
|
723
|
+
alreadyExists: boolean;
|
|
724
|
+
}>;
|
|
725
|
+
}
|
|
681
726
|
interface ToolingDoctorReport {
|
|
682
727
|
ok: boolean;
|
|
683
728
|
message: string;
|
|
@@ -816,6 +861,7 @@ interface CapabilityImpls {
|
|
|
816
861
|
analytics: Analytics;
|
|
817
862
|
errors: Errors;
|
|
818
863
|
logs: Logs;
|
|
864
|
+
monitoring: Monitoring;
|
|
819
865
|
wiki: Wiki;
|
|
820
866
|
workers: Workers;
|
|
821
867
|
}
|
|
@@ -824,4 +870,4 @@ type CardinalityFor<K extends CapabilityKey> = (typeof CARDINALITY)[K];
|
|
|
824
870
|
type ResolvedCapability<K extends CapabilityKey> = CardinalityFor<K> extends "many" ? CapabilityImpls[K][] : CapabilityImpls[K];
|
|
825
871
|
declare function isMulti<K extends CapabilityKey>(key: K): CardinalityFor<K> extends "many" ? true : false;
|
|
826
872
|
//#endregion
|
|
827
|
-
export { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordRequest, 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, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti };
|
|
873
|
+
export { Analytics, Auth, AuthDescription, AuthEvent, AuthEventType, AuthIdentity, AuthUser, CARDINALITY, CapabilityImpls, CapabilityKey, Cardinality, CardinalityFor, Ci, CiRun, CiRunFilter, CiRunStatus, ConnectionStringOptions, CreateAuthUserInput, DeployFunctionConfig, DeployFunctionResult, DeployScriptConfig, DeployScriptResult, Deployment, DeploymentProject, DeploymentProjectSettings, DeploymentRecord, DeploymentTarget, DeploymentTrigger, Dns, DnsRecord, DnsRecordRequest, DnsRecordType, EnsureResult, Environment, EnvironmentReviewer, Environments, Errors, Issue, IssueSearchFilter, Issues, LabelDef, LifecycleResult, LifecycleSlot, Logs, Monitoring, MonitoringAssertion, MonitoringAssertionComparison, MonitoringAssertionSource, MonitoringCheck, MonitoringCheckInput, MonitoringHttpMethod, 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, WikiProvisionOpts, WikiProxyConfig, Workers, isMulti };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theholocron/cli",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.133",
|
|
4
4
|
"description": "The Holocron CLI - a pluggable, capability-based orchestrator for spinning up and operating software projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"@sentry/node": "^10.70.0",
|
|
51
51
|
"@theholocron/components-doc": "^1.6.0",
|
|
52
52
|
"@theholocron/env-utils": "^1.9.2",
|
|
53
|
-
"@theholocron/github-client": "^1.
|
|
54
|
-
"@theholocron/http-client": "^1.
|
|
53
|
+
"@theholocron/github-client": "^1.40.0",
|
|
54
|
+
"@theholocron/http-client": "^1.40.0",
|
|
55
55
|
"@theholocron/misc-utils": "^1.9.2",
|
|
56
56
|
"@theholocron/observability": "^0.5.0",
|
|
57
57
|
"@theholocron/registry-doc": "^1.12.0",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"pino-pretty": "^13.1.3",
|
|
62
62
|
"posthog-node": "^5.51.6",
|
|
63
63
|
"yargs": "^18.1.0",
|
|
64
|
-
"@theholocron/
|
|
65
|
-
"@theholocron/
|
|
64
|
+
"@theholocron/astromech": "5.0.0-alpha.133",
|
|
65
|
+
"@theholocron/datapad": "5.0.0-alpha.133"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@commitlint/config-conventional": "^21.2.3",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"tsx": "4.23.12",
|
|
82
82
|
"typescript": "^5.9.3",
|
|
83
83
|
"vitest": "^4.1.11",
|
|
84
|
-
"@theholocron/rollup-plugin-transform-template": "5.0.0-alpha.
|
|
84
|
+
"@theholocron/rollup-plugin-transform-template": "5.0.0-alpha.133"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": ">=22.0.0"
|