@blogic-cz/agent-tools 0.18.1 → 1.1.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.
Files changed (75) hide show
  1. package/README.md +35 -6
  2. package/dist/az-tool/config.d.ts +60 -12
  3. package/dist/az-tool/config.d.ts.map +1 -1
  4. package/dist/az-tool/errors.d.ts +10 -1
  5. package/dist/az-tool/errors.d.ts.map +1 -1
  6. package/dist/az-tool/profile.d.ts +16 -0
  7. package/dist/az-tool/profile.d.ts.map +1 -0
  8. package/dist/az-tool/security.d.ts +20 -3
  9. package/dist/az-tool/security.d.ts.map +1 -1
  10. package/dist/az-tool/service.d.ts +9 -4
  11. package/dist/az-tool/service.d.ts.map +1 -1
  12. package/dist/az-tool/types.d.ts +10 -60
  13. package/dist/az-tool/types.d.ts.map +1 -1
  14. package/dist/{az-tool → azdo-tool}/build.d.ts +9 -9
  15. package/dist/azdo-tool/build.d.ts.map +1 -0
  16. package/dist/azdo-tool/config.d.ts +13 -0
  17. package/dist/azdo-tool/config.d.ts.map +1 -0
  18. package/dist/azdo-tool/errors.d.ts +43 -0
  19. package/dist/azdo-tool/errors.d.ts.map +1 -0
  20. package/dist/azdo-tool/extract-option-value.d.ts.map +1 -0
  21. package/dist/azdo-tool/index.d.ts +3 -0
  22. package/dist/azdo-tool/index.d.ts.map +1 -0
  23. package/dist/azdo-tool/security.d.ts +4 -0
  24. package/dist/azdo-tool/security.d.ts.map +1 -0
  25. package/dist/azdo-tool/service.d.ts +15 -0
  26. package/dist/azdo-tool/service.d.ts.map +1 -0
  27. package/dist/azdo-tool/transformers.d.ts.map +1 -0
  28. package/dist/azdo-tool/types.d.ts +64 -0
  29. package/dist/azdo-tool/types.d.ts.map +1 -0
  30. package/dist/config/index.d.ts +1 -1
  31. package/dist/config/index.d.ts.map +1 -1
  32. package/dist/config/loader.d.ts +1 -1
  33. package/dist/config/loader.d.ts.map +1 -1
  34. package/dist/config/types.d.ts +18 -1
  35. package/dist/config/types.d.ts.map +1 -1
  36. package/dist/credential-guard/index.d.ts.map +1 -1
  37. package/dist/gh-tool/gist.d.ts +102 -0
  38. package/dist/gh-tool/gist.d.ts.map +1 -0
  39. package/dist/gh-tool/text-input.d.ts +1 -0
  40. package/dist/gh-tool/text-input.d.ts.map +1 -1
  41. package/dist/shared/azure-credentials.d.ts +20 -0
  42. package/dist/shared/azure-credentials.d.ts.map +1 -0
  43. package/dist/shared/binary-preflight.d.ts +1 -1
  44. package/package.json +8 -2
  45. package/schemas/agent-tools.schema.json +42 -1
  46. package/src/az-tool/config.ts +135 -25
  47. package/src/az-tool/errors.ts +14 -1
  48. package/src/az-tool/index.ts +67 -134
  49. package/src/az-tool/profile.ts +48 -0
  50. package/src/az-tool/security.ts +248 -89
  51. package/src/az-tool/service.ts +137 -242
  52. package/src/az-tool/types.ts +11 -64
  53. package/src/{az-tool → azdo-tool}/build.ts +11 -11
  54. package/src/azdo-tool/config.ts +33 -0
  55. package/src/azdo-tool/errors.ts +41 -0
  56. package/src/azdo-tool/index.ts +222 -0
  57. package/src/azdo-tool/security.ts +157 -0
  58. package/src/azdo-tool/service.ts +322 -0
  59. package/src/azdo-tool/types.ts +67 -0
  60. package/src/config/index.ts +1 -0
  61. package/src/config/loader.ts +10 -1
  62. package/src/config/types.ts +19 -1
  63. package/src/credential-guard/index.ts +7 -2
  64. package/src/gh-tool/gist.ts +625 -0
  65. package/src/gh-tool/index.ts +21 -1
  66. package/src/gh-tool/text-input.ts +10 -2
  67. package/src/shared/azure-credentials.ts +50 -0
  68. package/src/shared/binary-preflight.ts +1 -1
  69. package/dist/az-tool/build.d.ts.map +0 -1
  70. package/dist/az-tool/extract-option-value.d.ts.map +0 -1
  71. package/dist/az-tool/transformers.d.ts.map +0 -1
  72. /package/dist/{az-tool → azdo-tool}/extract-option-value.d.ts +0 -0
  73. /package/dist/{az-tool → azdo-tool}/transformers.d.ts +0 -0
  74. /package/src/{az-tool → azdo-tool}/extract-option-value.ts +0 -0
  75. /package/src/{az-tool → azdo-tool}/transformers.ts +0 -0
@@ -0,0 +1,64 @@
1
+ export type SecurityCheckResult = {
2
+ allowed: boolean;
3
+ command?: string;
4
+ reason?: string;
5
+ };
6
+ export type InvokeParams = {
7
+ area: string;
8
+ resource: string;
9
+ project?: string;
10
+ routeParameters?: Record<string, string | number>;
11
+ queryParameters?: Record<string, string | number>;
12
+ };
13
+ export type BuildJob = {
14
+ id: string;
15
+ parentId?: string | null;
16
+ type: "Job" | "Stage" | "Task" | "Phase" | "Checkpoint";
17
+ name: string;
18
+ state: "pending" | "inProgress" | "completed";
19
+ result?: "succeeded" | "failed" | "canceled" | "skipped" | null;
20
+ startTime?: string | null;
21
+ finishTime?: string | null;
22
+ errorCount?: number | null;
23
+ warningCount?: number | null;
24
+ log?: {
25
+ id: number;
26
+ url: string;
27
+ } | null;
28
+ };
29
+ export type BuildTimeline = {
30
+ records: BuildJob[];
31
+ id: string;
32
+ changeId: number;
33
+ lastChangedBy: string;
34
+ lastChangedOn: string;
35
+ url: string;
36
+ };
37
+ export type BuildLog = {
38
+ id: number;
39
+ type: string;
40
+ url: string;
41
+ lineCount?: number;
42
+ };
43
+ export type BuildLogs = {
44
+ count: number;
45
+ value: BuildLog[];
46
+ };
47
+ export type JobSummary = {
48
+ name: string;
49
+ state: string;
50
+ result?: string;
51
+ stage?: string;
52
+ duration?: string;
53
+ logId?: number;
54
+ };
55
+ export type PipelineRun = {
56
+ id: number;
57
+ buildNumber: string;
58
+ status: string;
59
+ result?: string;
60
+ sourceBranch: string;
61
+ startTime?: string;
62
+ finishTime?: string;
63
+ };
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/azdo-tool/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;IAC9C,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -1,4 +1,4 @@
1
- export type { AgentToolsConfig, AzureConfig, K8sConfig, DbEnvConfig, DbAllowedMutationTargets, DbMutationOperation, DatabaseConfig, ObservabilityConfig, ObservabilityEnvTarget, LogsConfig, AuditConfig, CliToolOverride, CredentialGuardConfig, GitHubPrTitlePolicy, GitHubRepoConfig, } from "./types";
1
+ export type { AgentToolsConfig, AzureConfig, AzurePlatformConfig, K8sConfig, DbEnvConfig, DbAllowedMutationTargets, DbMutationOperation, DatabaseConfig, ObservabilityConfig, ObservabilityEnvTarget, LogsConfig, AuditConfig, CliToolOverride, CredentialGuardConfig, GitHubPrTitlePolicy, GitHubRepoConfig, } from "./types";
2
2
  export { DbMutationOperationSchema } from "./types";
3
3
  export { ConfigService, ConfigServiceLayer, getToolConfig, getDefaultEnvironment, getGitHubConfig, resolveGitHubRepoTarget, loadConfig, } from "./loader";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,UAAU,GACX,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,UAAU,GACX,MAAM,UAAU,CAAC"}
@@ -13,7 +13,7 @@ export declare class ConfigLoadError extends ConfigLoadError_base<{
13
13
  }> {
14
14
  }
15
15
  export declare const ConfigServiceLayer: Layer.Layer<ConfigService, ConfigLoadError, never>;
16
- type ProfiledSection = keyof Pick<AgentToolsConfig, "azure" | "kubernetes" | "database" | "observability" | "logs">;
16
+ type ProfiledSection = keyof Pick<AgentToolsConfig, "azure" | "azurePlatform" | "kubernetes" | "database" | "observability" | "logs">;
17
17
  export declare function getToolConfig<T>(config: AgentToolsConfig | undefined, section: ProfiledSection, profile?: string): T | undefined;
18
18
  export declare function getDefaultEnvironment(config: AgentToolsConfig | undefined): string | undefined;
19
19
  export declare function getGitHubConfig(config: AgentToolsConfig | undefined, profile?: string): GitHubRepoConfig | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA6NlE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,UAAU,GAAE,MAA4B,GACvC,gBAAgB,CAmClB;AAmFD,wBAAsB,UAAU,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcxE;;AAED,qBAAa,aAAc,SAAQ,kBAElC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,eAAO,MAAM,kBAAkB,oDAM9B,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,IAAI,CAC/B,gBAAgB,EAChB,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,MAAM,CAC/D,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,GAAG,SAAS,CAkCf;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE9F;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,GAAG,SAAS,CAc9B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,GAAG,SAAS,CAqBpB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAsOlE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,UAAU,GAAE,MAA4B,GACvC,gBAAgB,CAmClB;AAmFD,wBAAsB,UAAU,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAcxE;;AAED,qBAAa,aAAc,SAAQ,kBAElC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,eAAO,MAAM,kBAAkB,oDAM9B,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,IAAI,CAC/B,gBAAgB,EAChB,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,MAAM,CACjF,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,GAAG,SAAS,CAkCf;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE9F;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,GAAG,SAAS,CAc9B;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,GAAG,SAAS,CAqBpB"}
@@ -1,10 +1,25 @@
1
1
  import { Schema } from "effect";
2
- /** Azure DevOps profile configuration */
2
+ /** Azure DevOps profile, consumed by azdo-tool. */
3
3
  export type AzureConfig = {
4
4
  organization: string;
5
5
  defaultProject: string;
6
6
  timeoutMs?: number;
7
7
  };
8
+ /** Azure platform (PaaS) profile, consumed by az-tool. */
9
+ export type AzurePlatformConfig = {
10
+ subscription: string;
11
+ timeoutMs?: number;
12
+ /**
13
+ * Require --profile to be passed explicitly before this subscription is
14
+ * touched. Defaults to true for profiles keyed "prod" or "production".
15
+ */
16
+ production?: boolean;
17
+ /**
18
+ * Resource groups this profile may address. Empty or absent means every
19
+ * resource group in the subscription is allowed.
20
+ */
21
+ allowedResourceGroups?: string[];
22
+ };
8
23
  export type CleanupPolicy = "leave-running" | "stop-if-started";
9
24
  export type VpnPrerequisite = {
10
25
  type: "vpn";
@@ -181,6 +196,8 @@ export type AgentToolsConfig = {
181
196
  $schema?: string;
182
197
  /** Named Azure DevOps profiles. e.g. { default: { organization: "...", defaultProject: "..." } } */
183
198
  azure?: Record<string, AzureConfig>;
199
+ /** Named Azure platform profiles. e.g. { default: { subscription: "..." } } */
200
+ azurePlatform?: Record<string, AzurePlatformConfig>;
184
201
  /** Named VPN definitions referenced by profile prerequisites. */
185
202
  vpns?: Record<string, VpnConfig>;
186
203
  /** Named Kubernetes cluster profiles. e.g. { default: {...}, staging: {...} } */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credential-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM5E,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAQF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACxD,CAAC;AAkMF,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAErE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAqMrF;AAQD,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,UAjbD,SAAS,UAAU,UAAU,KAAK,IAibM,CAAC;AAE5E,oDAAoD;AACpD,eAAO,MAAM,aAAa,YAnbC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAmbjB,CAAC;AAExD,yEAAyE;AACzE,eAAO,MAAM,aAAa,aArbE,MAAM,KAAK,OAqbgB,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,aAAa,aAvbE,MAAM,KAAK,OAubgB,CAAC;AAExD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,YAzbC,MAAM,KAAK,OAyb0B,CAAC;AAE1E,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,YA3bC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IA2bf,CAAC;AAEhE,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,YA7bC,MAAM,KAAK,OA6bsB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YA/bC,MAAM,KAAK,MAAM,GAAG,IA+ba,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credential-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM5E,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAQF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACxD,CAAC;AAuMF,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAErE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAEpE;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAqMrF;AAQD,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,UAtbD,SAAS,UAAU,UAAU,KAAK,IAsbM,CAAC;AAE5E,oDAAoD;AACpD,eAAO,MAAM,aAAa,YAxbC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAwbjB,CAAC;AAExD,yEAAyE;AACzE,eAAO,MAAM,aAAa,aA1bE,MAAM,KAAK,OA0bgB,CAAC;AAExD,yDAAyD;AACzD,eAAO,MAAM,aAAa,aA5bE,MAAM,KAAK,OA4bgB,CAAC;AAExD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,YA9bC,MAAM,KAAK,OA8b0B,CAAC;AAE1E,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,YAhcC,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAgcf,CAAC;AAEhE,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,YAlcC,MAAM,KAAK,OAkcsB,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YApcC,MAAM,KAAK,MAAM,GAAG,IAoca,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { Command } from "effect/unstable/cli";
2
+ import { Effect, Option } from "effect";
3
+ import { GitHubCommandError } from "./errors";
4
+ import { GitHubService } from "./service";
5
+ type GistApiFile = {
6
+ filename: string;
7
+ language: string | null;
8
+ type: string;
9
+ size: number;
10
+ truncated?: boolean;
11
+ content?: string;
12
+ };
13
+ type GistApi = {
14
+ id: string;
15
+ description: string | null;
16
+ public: boolean;
17
+ html_url: string;
18
+ created_at: string;
19
+ updated_at: string;
20
+ owner: {
21
+ login: string;
22
+ } | null;
23
+ files: Record<string, GistApiFile>;
24
+ };
25
+ type GistFile = {
26
+ filename: string;
27
+ language: string | null;
28
+ size: number;
29
+ truncated: boolean;
30
+ content?: string;
31
+ };
32
+ type GistDetail = {
33
+ id: string;
34
+ description: string | null;
35
+ public: boolean;
36
+ url: string;
37
+ createdAt: string;
38
+ updatedAt: string;
39
+ owner: string | null;
40
+ files: GistFile[];
41
+ };
42
+ type GistCreateResult = {
43
+ created: true;
44
+ id: string;
45
+ url: string;
46
+ public: boolean;
47
+ files: string[];
48
+ };
49
+ export declare const toGistDetail: (gist: GistApi, opts: {
50
+ filename: string | null;
51
+ withContent: boolean;
52
+ }) => GistDetail;
53
+ export declare const validateBodyFilename: (body: string | null, filename: string | null, command: string) => GitHubCommandError | null;
54
+ export declare const validateEditInput: (opts: {
55
+ body: string | null;
56
+ filename: string | null;
57
+ description: string | null;
58
+ add: string | null;
59
+ remove: string | null;
60
+ }) => GitHubCommandError | null;
61
+ export declare const createGist: (opts: {
62
+ paths: string[];
63
+ description: string | null;
64
+ public: boolean;
65
+ }) => Effect.Effect<GistCreateResult, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
66
+ export declare const gistListCommand: Command.Command<"list", {
67
+ readonly format: "json" | "toon";
68
+ readonly limit: number;
69
+ readonly visibility: Option.Option<"public" | "secret">;
70
+ }, {}, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
71
+ export declare const gistViewCommand: Command.Command<"view", {
72
+ readonly filename: Option.Option<string>;
73
+ readonly format: "json" | "toon";
74
+ readonly id: string;
75
+ readonly metadataOnly: boolean;
76
+ }, {}, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
77
+ export declare const gistCreateCommand: Command.Command<"create", {
78
+ readonly body: Option.Option<string>;
79
+ readonly bodyFile: Option.Option<string>;
80
+ readonly desc: Option.Option<string>;
81
+ readonly filename: Option.Option<string>;
82
+ readonly files: Option.Option<string>;
83
+ readonly format: "json" | "toon";
84
+ readonly public: boolean;
85
+ }, {}, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
86
+ export declare const gistEditCommand: Command.Command<"edit", {
87
+ readonly add: Option.Option<string>;
88
+ readonly body: Option.Option<string>;
89
+ readonly bodyFile: Option.Option<string>;
90
+ readonly desc: Option.Option<string>;
91
+ readonly filename: Option.Option<string>;
92
+ readonly format: "json" | "toon";
93
+ readonly id: string;
94
+ readonly remove: Option.Option<string>;
95
+ }, {}, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
96
+ export declare const gistDeleteCommand: Command.Command<"delete", {
97
+ readonly confirm: boolean;
98
+ readonly format: "json" | "toon";
99
+ readonly id: string;
100
+ }, {}, GitHubCommandError | import("./errors").GitHubNotFoundError | import("./errors").GitHubAuthError, GitHubService>;
101
+ export {};
102
+ //# sourceMappingURL=gist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gist.d.ts","sourceRoot":"","sources":["../../src/gh-tool/gist.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Effect, Schema } from "effect";
2
2
  import { GitHubCommandError } from "#gh/errors";
3
3
  declare const MissingMode: Schema.Literals<readonly ["error", "null", "default"]>;
4
+ export declare const isSensitivePath: (filePath: string) => boolean;
4
5
  type ResolveTextInputOptions = {
5
6
  command: string;
6
7
  value: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"text-input.d.ts","sourceRoot":"","sources":["../../src/gh-tool/text-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,WAAW,wDAAgD,CAAC;AAoBlE,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAsFF,eAAO,MAAM,wBAAwB,GACnC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,KACrE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAIuD,CAAC;AAEnG,eAAO,MAAM,wBAAwB,GACnC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,KACrE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,kBAAkB,CAI9C,CAAC;AAEL,eAAO,MAAM,uBAAuB,GAClC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAKsD,CAAC"}
1
+ {"version":3,"file":"text-input.d.ts","sourceRoot":"","sources":["../../src/gh-tool/text-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAShD,QAAA,MAAM,WAAW,wDAAgD,CAAC;AAIlE,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,YACmB,CAAC;AAkBpE,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAsFF,eAAO,MAAM,wBAAwB,GACnC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,KACrE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAIuD,CAAC;AAEnG,eAAO,MAAM,wBAAwB,GACnC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,KACrE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,kBAAkB,CAI9C,CAAC;AAEL,eAAO,MAAM,uBAAuB,GAClC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAKsD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Azure CLI surfaces that return credential material.
3
+ *
4
+ * Shared because two tools reach the Azure CLI: az-tool for the platform, and
5
+ * azdo-tool for the `acr`/`account` groups it still passes through for
6
+ * backwards compatibility. Both must refuse the same commands — a term added
7
+ * to one list and not the other reopens a credential read through whichever
8
+ * tool was missed.
9
+ */
10
+ /** Read-shaped verbs that return credential material, in any command group. */
11
+ export declare const CREDENTIAL_BLOCKED_VERBS: readonly ["get-access-token", "get-credentials", "get-secrets", "list-account-keys", "list-connection-strings", "list-keys", "list-publishing-credentials", "list-publishing-profiles", "list-secrets", "show-connection-string", "show-secret"];
12
+ /**
13
+ * Command group segments that carry credential material. For these the listing
14
+ * itself returns values — `az storage account keys list` and
15
+ * `az webapp config appsettings list` both print secrets.
16
+ */
17
+ export declare const CREDENTIAL_BLOCKED_SEGMENTS: readonly ["admin-key", "appsettings", "connection-string", "credential", "credentials", "key", "keys", "password", "query-key", "sas", "secret", "secrets"];
18
+ export declare const isCredentialBlockedVerb: (word: string) => boolean;
19
+ export declare const isCredentialBlockedSegment: (word: string) => boolean;
20
+ //# sourceMappingURL=azure-credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-credentials.d.ts","sourceRoot":"","sources":["../../src/shared/azure-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,kPAY3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,6JAa9B,CAAC;AAEX,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,OACS,CAAC;AAEjE,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,OACS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export declare const REQUIRED_BINARIES: {
2
2
  readonly az: {
3
- readonly tools: "az-tool";
3
+ readonly tools: "az-tool and azdo-tool";
4
4
  readonly install: "Install it with `brew install azure-cli` (macOS) or see https://learn.microsoft.com/cli/azure/install-azure-cli.";
5
5
  };
6
6
  readonly gh: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blogic-cz/agent-tools",
3
- "version": "0.18.1",
4
- "description": "CLI tools for AI coding agent workflows — GitHub, database, Kubernetes, Azure DevOps, logs, sessions, and audit",
3
+ "version": "1.1.0",
4
+ "description": "CLI tools for AI coding agent workflows — GitHub, database, Kubernetes, Azure platform, Azure DevOps, logs, sessions, and audit",
5
5
  "keywords": [
6
6
  "agent",
7
7
  "ai",
@@ -22,6 +22,7 @@
22
22
  "bin": {
23
23
  "agent-tools-audit": "./src/audit-tool/index.ts",
24
24
  "agent-tools-az": "./src/az-tool/index.ts",
25
+ "agent-tools-azdo": "./src/azdo-tool/index.ts",
25
26
  "agent-tools-db": "./src/db-tool/index.ts",
26
27
  "agent-tools-gh": "./src/gh-tool/index.ts",
27
28
  "agent-tools-k8s": "./src/k8s-tool/index.ts",
@@ -30,6 +31,7 @@
30
31
  "agent-tools-session": "./src/session-tool/index.ts",
31
32
  "audit-tool": "./src/audit-tool/index.ts",
32
33
  "az-tool": "./src/az-tool/index.ts",
34
+ "azdo-tool": "./src/azdo-tool/index.ts",
33
35
  "db-tool": "./src/db-tool/index.ts",
34
36
  "gh-tool": "./src/gh-tool/index.ts",
35
37
  "k8s-tool": "./src/k8s-tool/index.ts",
@@ -87,6 +89,10 @@
87
89
  "types": "./dist/az-tool/*.d.ts",
88
90
  "default": "./src/az-tool/*.ts"
89
91
  },
92
+ "#azdo/*": {
93
+ "types": "./dist/azdo-tool/*.d.ts",
94
+ "default": "./src/azdo-tool/*.ts"
95
+ },
90
96
  "#guard": {
91
97
  "types": "./dist/credential-guard/index.d.ts",
92
98
  "default": "./src/credential-guard/index.ts"
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://raw.githubusercontent.com/blogic-cz/agent-tools/main/schemas/agent-tools.schema.json",
4
4
  "title": "Agent Tools Configuration",
5
- "description": "Root configuration for the agent-tools package. Tool-specific sections (azure, kubernetes, database, observability, logs) are maps of named profiles keyed by profile name. Tools choose a profile via --profile <name> (default key is 'default', single-entry maps can be auto-selected). session, audit, and credentialGuard are global sections.",
5
+ "description": "Root configuration for the agent-tools package. Tool-specific sections (azure, azurePlatform, kubernetes, database, observability, logs) are maps of named profiles keyed by profile name. Tools choose a profile via --profile <name> (default key is 'default', single-entry maps can be auto-selected). session, audit, and credentialGuard are global sections.",
6
6
  "type": "object",
7
7
  "additionalProperties": true,
8
8
  "properties": {
@@ -18,6 +18,14 @@
18
18
  "$ref": "#/definitions/AzureConfig"
19
19
  }
20
20
  },
21
+ "azurePlatform": {
22
+ "description": "Named Azure platform (PaaS) profiles as Record<string, AzurePlatformConfig>.",
23
+ "type": "object",
24
+ "additionalProperties": {
25
+ "description": "Azure platform profile pinning az-tool to one subscription.",
26
+ "$ref": "#/definitions/AzurePlatformConfig"
27
+ }
28
+ },
21
29
  "kubernetes": {
22
30
  "description": "Named Kubernetes cluster profiles as Record<string, K8sConfig>.",
23
31
  "type": "object",
@@ -141,6 +149,33 @@
141
149
  },
142
150
  "required": ["organization", "defaultProject"]
143
151
  },
152
+ "AzurePlatformConfig": {
153
+ "description": "Azure platform (PaaS) profile configuration. Pins every az-tool command to one subscription.",
154
+ "type": "object",
155
+ "additionalProperties": false,
156
+ "properties": {
157
+ "subscription": {
158
+ "description": "Azure subscription ID or name appended to every command as --subscription.",
159
+ "type": "string"
160
+ },
161
+ "timeoutMs": {
162
+ "description": "Optional command timeout in milliseconds.",
163
+ "type": "number"
164
+ },
165
+ "production": {
166
+ "description": "Require --profile to be passed explicitly before this subscription is touched. Defaults to true for profiles keyed 'prod' or 'production'.",
167
+ "type": "boolean"
168
+ },
169
+ "allowedResourceGroups": {
170
+ "description": "Resource groups this profile may address via -g/--resource-group. Empty or absent allows every resource group in the subscription.",
171
+ "type": "array",
172
+ "items": {
173
+ "type": "string"
174
+ }
175
+ }
176
+ },
177
+ "required": ["subscription"]
178
+ },
144
179
  "K8sConfig": {
145
180
  "description": "Kubernetes cluster profile configuration.",
146
181
  "type": "object",
@@ -651,6 +686,12 @@
651
686
  "timeoutMs": 60000
652
687
  }
653
688
  },
689
+ "azurePlatform": {
690
+ "default": {
691
+ "subscription": "00000000-0000-0000-0000-000000000000",
692
+ "timeoutMs": 60000
693
+ }
694
+ },
654
695
  "kubernetes": {
655
696
  "default": {
656
697
  "clusterId": "398bf1ad-788c-40f5-a7e0-88366648d9d9",
@@ -1,33 +1,143 @@
1
- export const ALLOWED_SUBCOMMANDS = ["list", "run", "show", "show-tags"] as const;
1
+ /** Command groups owned by azdo-tool. Routed there with a hint instead of being run here. */
2
+ export const AZURE_DEVOPS_GROUPS = ["devops", "pipelines", "repos", "boards", "artifacts"] as const;
2
3
 
3
- export const BLOCKED_SUBCOMMANDS = ["create", "delete", "update", "cancel", "queue"] as const;
4
+ /** Verbs that only read state, matched exactly against the command verb. */
5
+ export const READ_ONLY_VERBS = [
6
+ "list",
7
+ "show",
8
+ "describe",
9
+ "exists",
10
+ "search",
11
+ "history",
12
+ "version",
13
+ "validate",
14
+ "wait",
15
+ ] as const;
16
+
17
+ /** Verb families that only read state, matched as a prefix of the command verb. */
18
+ export const READ_ONLY_VERB_PREFIXES = ["list-", "show-", "check-", "get-"] as const;
4
19
 
5
- export const DIRECT_AZ_COMMANDS = ["pipelines", "repos"] as const;
20
+ /**
21
+ * Mutating verbs. Unknown verbs are rejected anyway; this list exists so the
22
+ * common cases get "'delete' is a mutating operation" instead of "unknown verb".
23
+ */
24
+ export const BLOCKED_VERBS = [
25
+ "add",
26
+ "apply",
27
+ "approve",
28
+ "assign",
29
+ "attach",
30
+ "browse",
31
+ "cancel",
32
+ "clear",
33
+ "connect",
34
+ "create",
35
+ "delete",
36
+ "deploy",
37
+ "destroy",
38
+ "detach",
39
+ "disable",
40
+ "down",
41
+ "download",
42
+ "enable",
43
+ "execute",
44
+ "failover",
45
+ "generate",
46
+ "grant",
47
+ "import",
48
+ "init",
49
+ "install",
50
+ "invoke",
51
+ "login",
52
+ "logout",
53
+ "move",
54
+ "patch",
55
+ "publish",
56
+ "prune",
57
+ "purge",
58
+ "regenerate",
59
+ "reject",
60
+ "remove",
61
+ "renew",
62
+ "repair",
63
+ "replace",
64
+ "reset",
65
+ "restart",
66
+ "restore",
67
+ "revoke",
68
+ "rotate",
69
+ "run",
70
+ "scale",
71
+ "set",
72
+ "ssh",
73
+ "start",
74
+ "stop",
75
+ "swap",
76
+ "sync",
77
+ "tunnel",
78
+ "unassign",
79
+ "uninstall",
80
+ "untag",
81
+ "up",
82
+ "update",
83
+ "upgrade",
84
+ "upload",
85
+ ] as const;
6
86
 
7
- export const STANDALONE_AZ_COMMANDS = ["acr", "account"] as const;
87
+ /**
88
+ * Credential-bearing verbs and group segments live in `#shared` because
89
+ * azdo-tool's `acr`/`account` passthrough must refuse exactly the same
90
+ * commands. Re-exported here so this file stays the single place az-tool's
91
+ * security config is read from.
92
+ *
93
+ * Segment matching keeps neighbouring groups reachable: `keyvault list` works
94
+ * because the blocked segment is `secret`, not `keyvault`. Key Vault gets a
95
+ * further carve-out below.
96
+ */
97
+ export { CREDENTIAL_BLOCKED_SEGMENTS, CREDENTIAL_BLOCKED_VERBS } from "#shared/azure-credentials";
8
98
 
9
- export const ALLOWED_INVOKE_AREAS = ["build"] as const;
99
+ /** The Key Vault command group, which needs finer treatment than segment matching. */
100
+ export const KEYVAULT_GROUP = "keyvault";
10
101
 
11
- export const ALLOWED_INVOKE_RESOURCES: Record<string, readonly string[]> = {
12
- build: ["timeline", "logs", "builds"],
13
- } as const;
102
+ /**
103
+ * Key Vault subgroups that expose public material only — a key's public JWK, a
104
+ * certificate's public half. The private halves live under `secret`, which
105
+ * stays gated. Without this, segment matching on `key` would block the whole
106
+ * `az keyvault key` surface for no gain.
107
+ */
108
+ export const KEYVAULT_PUBLIC_SUBGROUPS = ["key", "certificate"] as const;
14
109
 
15
- export const BLOCKED_INVOKE_AREAS = [
16
- "git",
17
- "policy",
18
- "security",
19
- "wiki",
20
- "work",
21
- "graph",
22
- "audit",
23
- "permissions",
24
- ] as const;
110
+ /**
111
+ * Key Vault subgroups where listing is metadata-only but `show` returns the
112
+ * value. `az keyvault secret list` yields ids, attributes, and tags — no
113
+ * secret material — so the list family is allowed and `show` is not.
114
+ */
115
+ export const KEYVAULT_NAME_ONLY_SUBGROUPS = ["secret", "secrets"] as const;
116
+
117
+ /**
118
+ * Flags controlled by the selected profile. A user override would defeat the
119
+ * configured subscription pin, so they are rejected rather than forwarded.
120
+ */
121
+ export const CONTROLLED_FLAGS = ["--subscription"] as const;
122
+
123
+ /**
124
+ * Alternate addressing modes rejected outright. `--ids` takes a full ARM
125
+ * resource ID that carries its own subscription and resource group, so it
126
+ * side-steps both the subscription pin and the resource group allowlist.
127
+ * `-g` plus `--name` expresses the same target inside the guarded scope.
128
+ */
129
+ export const REJECTED_ADDRESSING_FLAGS = ["--ids"] as const;
130
+
131
+ /** Flags naming the resource group a command addresses. */
132
+ export const RESOURCE_GROUP_FLAGS = ["-g", "--resource-group"] as const;
25
133
 
26
- export const BLOCKED_INVOKE_RESOURCES: Record<string, readonly string[]> = {
27
- build: ["definitions", "folders", "tags", "retention"],
28
- } as const;
134
+ /**
135
+ * The resource group segment of an ARM resource ID. Flags such as `--scope`
136
+ * and `--resource` take a full ID, naming a resource group without ever using
137
+ * -g, so IDs are mined for group names too.
138
+ */
139
+ export const RESOURCE_GROUP_IN_ID_PATTERN = /\/resourceGroups\/([^/\s]+)/gi;
29
140
 
30
- export type AllowedSubcommand = (typeof ALLOWED_SUBCOMMANDS)[number];
31
- export type BlockedSubcommand = (typeof BLOCKED_SUBCOMMANDS)[number];
32
- export type AllowedInvokeArea = (typeof ALLOWED_INVOKE_AREAS)[number];
33
- export type BlockedInvokeArea = (typeof BLOCKED_INVOKE_AREAS)[number];
141
+ export type ReadOnlyVerb = (typeof READ_ONLY_VERBS)[number];
142
+ export type BlockedVerb = (typeof BLOCKED_VERBS)[number];
143
+ export type AzureDevOpsGroup = (typeof AZURE_DEVOPS_GROUPS)[number];
@@ -27,6 +27,14 @@ export class AzTimeoutError extends Schema.TaggedError<AzTimeoutError>()("AzTime
27
27
  retryable: Schema.optionalKey(Schema.Boolean),
28
28
  }) {}
29
29
 
30
+ export class AzProfileError extends Schema.TaggedError<AzProfileError>()("AzProfileError", {
31
+ message: Schema.String,
32
+ profile: Schema.String,
33
+ hint: Schema.optionalKey(Schema.String),
34
+ nextCommand: Schema.optionalKey(Schema.String),
35
+ retryable: Schema.optionalKey(Schema.Boolean),
36
+ }) {}
37
+
30
38
  export class AzParseError extends Schema.TaggedError<AzParseError>()("AzParseError", {
31
39
  message: Schema.String,
32
40
  rawOutput: Schema.String,
@@ -35,4 +43,9 @@ export class AzParseError extends Schema.TaggedError<AzParseError>()("AzParseErr
35
43
  retryable: Schema.optionalKey(Schema.Boolean),
36
44
  }) {}
37
45
 
38
- export type AzError = AzSecurityError | AzCommandError | AzTimeoutError | AzParseError;
46
+ export type AzError =
47
+ | AzSecurityError
48
+ | AzCommandError
49
+ | AzTimeoutError
50
+ | AzParseError
51
+ | AzProfileError;