@orchestraworks/cli 0.5.1 → 0.5.3

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 (112) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/api/compute-provider-check.d.ts +29 -0
  3. package/dist/cli/api/compute-provider-check.js +207 -0
  4. package/dist/cli/api/tail.d.ts +66 -0
  5. package/dist/cli/api/tail.js +564 -0
  6. package/dist/cli/main.d.ts +5 -1
  7. package/dist/cli/main.js +22 -0
  8. package/dist/constructs/agent.d.ts +10 -0
  9. package/dist/constructs/agent.js +39 -4
  10. package/dist/constructs/environment.d.ts +29 -1
  11. package/dist/constructs/environment.js +28 -1
  12. package/dist/constructs/skill.d.ts +6 -1
  13. package/dist/constructs/skill.js +21 -2
  14. package/dist/engine/reconcile.js +15 -1
  15. package/dist/generated/cli-commands.json +876 -1
  16. package/dist/generated/managed-skills.d.ts +2 -0
  17. package/dist/generated/managed-skills.js +13 -0
  18. package/dist/index.d.ts +1 -1
  19. package/docs/REFERENCE.md +21 -1
  20. package/node_modules/@orchestraworks/client/dist/esm/models/ApiKey.d.ts +6 -0
  21. package/node_modules/@orchestraworks/client/dist/esm/models/ApiKey.js +2 -0
  22. package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProvider.d.ts +3 -3
  23. package/node_modules/@orchestraworks/client/dist/esm/models/CreateApiKeyRequest.d.ts +7 -1
  24. package/node_modules/@orchestraworks/client/dist/esm/models/CreateApiKeyRequest.js +2 -0
  25. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.d.ts +13 -0
  26. package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.js +5 -0
  27. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.d.ts +13 -0
  28. package/node_modules/@orchestraworks/client/dist/esm/models/Environment.js +5 -0
  29. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHook.d.ts +38 -0
  30. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHook.js +45 -0
  31. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHooks.d.ts +39 -0
  32. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHooks.js +44 -0
  33. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHooksRequest.d.ts +39 -0
  34. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentHooksRequest.js +44 -0
  35. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentProvisionSpec.d.ts +2 -1
  36. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentProvisionSpecRequest.d.ts +2 -1
  37. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentSnapshot.d.ts +19 -0
  38. package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentSnapshot.js +7 -0
  39. package/node_modules/@orchestraworks/client/dist/esm/models/Machine.d.ts +7 -1
  40. package/node_modules/@orchestraworks/client/dist/esm/models/Machine.js +2 -0
  41. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateEnvironmentRequest.d.ts +13 -0
  42. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateEnvironmentRequest.js +5 -0
  43. package/node_modules/@orchestraworks/client/dist/esm/models/index.d.ts +3 -0
  44. package/node_modules/@orchestraworks/client/dist/esm/models/index.js +3 -0
  45. package/node_modules/@orchestraworks/client/dist/models/ApiKey.d.ts +6 -0
  46. package/node_modules/@orchestraworks/client/dist/models/ApiKey.js +2 -0
  47. package/node_modules/@orchestraworks/client/dist/models/ComputeProvider.d.ts +3 -3
  48. package/node_modules/@orchestraworks/client/dist/models/CreateApiKeyRequest.d.ts +7 -1
  49. package/node_modules/@orchestraworks/client/dist/models/CreateApiKeyRequest.js +2 -0
  50. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.d.ts +13 -0
  51. package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.js +5 -0
  52. package/node_modules/@orchestraworks/client/dist/models/Environment.d.ts +13 -0
  53. package/node_modules/@orchestraworks/client/dist/models/Environment.js +5 -0
  54. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHook.d.ts +38 -0
  55. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHook.js +52 -0
  56. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHooks.d.ts +39 -0
  57. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHooks.js +51 -0
  58. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHooksRequest.d.ts +39 -0
  59. package/node_modules/@orchestraworks/client/dist/models/EnvironmentHooksRequest.js +51 -0
  60. package/node_modules/@orchestraworks/client/dist/models/EnvironmentProvisionSpec.d.ts +2 -1
  61. package/node_modules/@orchestraworks/client/dist/models/EnvironmentProvisionSpecRequest.d.ts +2 -1
  62. package/node_modules/@orchestraworks/client/dist/models/EnvironmentSnapshot.d.ts +19 -0
  63. package/node_modules/@orchestraworks/client/dist/models/EnvironmentSnapshot.js +7 -0
  64. package/node_modules/@orchestraworks/client/dist/models/Machine.d.ts +7 -1
  65. package/node_modules/@orchestraworks/client/dist/models/Machine.js +2 -0
  66. package/node_modules/@orchestraworks/client/dist/models/UpdateEnvironmentRequest.d.ts +13 -0
  67. package/node_modules/@orchestraworks/client/dist/models/UpdateEnvironmentRequest.js +5 -0
  68. package/node_modules/@orchestraworks/client/dist/models/index.d.ts +3 -0
  69. package/node_modules/@orchestraworks/client/dist/models/index.js +3 -0
  70. package/node_modules/@orchestraworks/client/package.json +1 -1
  71. package/package.json +4 -4
  72. package/skills/orchestra/SKILL.md +167 -42
  73. package/skills/orchestra-fdk/SKILL.md +112 -545
  74. package/skills/orchestra-fdk/references/authoring.md +130 -3
  75. package/skills/orchestra-fdk/references/environment.md +352 -43
  76. package/skills/orchestra-fdk/references/integrations/analytics.md +18 -0
  77. package/skills/orchestra-fdk/references/integrations/ci-cd.md +20 -0
  78. package/skills/orchestra-fdk/references/integrations/cloud.md +19 -0
  79. package/skills/orchestra-fdk/references/integrations/code-repo.md +76 -0
  80. package/skills/orchestra-fdk/references/integrations/databases.md +22 -0
  81. package/skills/orchestra-fdk/references/integrations/dependencies.md +29 -0
  82. package/skills/orchestra-fdk/references/integrations/design.md +18 -0
  83. package/skills/orchestra-fdk/references/integrations/feature-flags.md +19 -0
  84. package/skills/orchestra-fdk/references/integrations/incident.md +29 -0
  85. package/skills/orchestra-fdk/references/integrations/issue-tracker.md +65 -0
  86. package/skills/orchestra-fdk/references/integrations/knowledge-base.md +43 -0
  87. package/skills/orchestra-fdk/references/integrations/messaging.md +38 -0
  88. package/skills/orchestra-fdk/references/integrations/observability.md +36 -0
  89. package/skills/orchestra-fdk/references/integrations/secrets-managers.md +25 -0
  90. package/skills/orchestra-fdk/references/integrations/support-desk.md +31 -0
  91. package/skills/orchestra-fdk/references/phases/0-start.md +62 -0
  92. package/skills/orchestra-fdk/references/phases/1-discover.md +111 -0
  93. package/skills/orchestra-fdk/references/phases/2-plan.md +157 -0
  94. package/skills/orchestra-fdk/references/phases/3-connect.md +99 -0
  95. package/skills/orchestra-fdk/references/phases/4-build.md +159 -0
  96. package/skills/orchestra-fdk/references/phases/5-prove.md +107 -0
  97. package/skills/orchestra-fdk/references/phases/6-handover.md +42 -0
  98. package/skills/orchestra-fdk/references/troubleshooting.md +128 -0
  99. package/templates/bug-fix/agents/bugfix.md +1 -1
  100. package/templates/bug-fix/main.ts +1 -1
  101. package/templates/engineering-team/README.md +45 -181
  102. package/templates/engineering-team/agents/engineer-agent.md +10 -7
  103. package/templates/engineering-team/agents/manager-agent.md +23 -120
  104. package/templates/engineering-team/inputs.json +1 -3
  105. package/templates/engineering-team/lib/environment.ts +10 -90
  106. package/templates/engineering-team/lib/inputs.ts +5 -97
  107. package/templates/engineering-team/lib/setup.sh +5 -5
  108. package/templates/engineering-team/main.ts +22 -69
  109. package/templates/todo-factory/agents/bugfix.md +1 -1
  110. package/templates/todo-factory/main.ts +1 -1
  111. package/templates/engineering-team/agents/engineer-bare.md +0 -22
  112. package/templates/engineering-team/onboarding/create-score-metrics.sh +0 -33
@@ -97,6 +97,7 @@ export function MachineFromJSONTyped(json, ignoreDiscriminator) {
97
97
  'organizationId': json['organizationId'],
98
98
  'environmentId': json['environmentId'],
99
99
  'computeProviderKey': json['computeProviderKey'],
100
+ 'computeProviderId': json['computeProviderId'] == null ? undefined : json['computeProviderId'],
100
101
  'computeProviderInstanceId': json['computeProviderInstanceId'] == null ? undefined : json['computeProviderInstanceId'],
101
102
  'status': json['status'],
102
103
  'reason': json['reason'] == null ? undefined : json['reason'],
@@ -133,6 +134,7 @@ export function MachineToJSONTyped(value, ignoreDiscriminator = false) {
133
134
  'organizationId': value['organizationId'],
134
135
  'environmentId': value['environmentId'],
135
136
  'computeProviderKey': value['computeProviderKey'],
137
+ 'computeProviderId': value['computeProviderId'],
136
138
  'computeProviderInstanceId': value['computeProviderInstanceId'],
137
139
  'status': value['status'],
138
140
  'reason': value['reason'],
@@ -13,6 +13,7 @@ import type { EnvironmentIngressPolicy } from './EnvironmentIngressPolicy';
13
13
  import type { EnvironmentPlatformRequest } from './EnvironmentPlatformRequest';
14
14
  import type { EnvironmentEgressPolicy } from './EnvironmentEgressPolicy';
15
15
  import type { EnvironmentProvisionSpecRequest } from './EnvironmentProvisionSpecRequest';
16
+ import type { EnvironmentHooksRequest } from './EnvironmentHooksRequest';
16
17
  /**
17
18
  *
18
19
  * @export
@@ -49,6 +50,18 @@ export interface UpdateEnvironmentRequest {
49
50
  * @memberof UpdateEnvironmentRequest
50
51
  */
51
52
  provisionSpec?: EnvironmentProvisionSpecRequest;
53
+ /**
54
+ * The absolute folder every conversation's agent starts in, on every kind: a path starting with / on linux and macos, and a drive or UNC path on windows, at most 1024 characters. A machine keeps the value it was created with. The worker creates the folder when it is missing, owned by the account the agent runs as, and an agent placement whose folder cannot be created or entered fails. Absent, the agent starts in the worker's own folder for its harness. On an update, absent leaves the stored value and an empty one clears it.
55
+ * @type {string}
56
+ * @memberof UpdateEnvironmentRequest
57
+ */
58
+ workingDirectory?: string;
59
+ /**
60
+ * Scripts the worker runs at points of a machine's and an agent's life. onStartMachine and onStartAgent are built; onStartSession, onStopSession, onStopAgent and onStopMachine are reserved. On an update, an absent object or member leaves the stored hook.
61
+ * @type {EnvironmentHooksRequest}
62
+ * @memberof UpdateEnvironmentRequest
63
+ */
64
+ hooks?: EnvironmentHooksRequest;
52
65
  /**
53
66
  * Labels: the customer's key-to-value tags; the platform reads no key. Merged into the stored labels as a JSON Merge Patch: absent leaves them, a key with a string sets it, a key with null removes it, and null removes them all
54
67
  * @type {{ [key: string]: string | null; }}
@@ -15,6 +15,7 @@ import { EnvironmentIngressPolicyFromJSON, EnvironmentIngressPolicyToJSON, } fro
15
15
  import { EnvironmentPlatformRequestFromJSON, EnvironmentPlatformRequestToJSON, } from './EnvironmentPlatformRequest';
16
16
  import { EnvironmentEgressPolicyFromJSON, EnvironmentEgressPolicyToJSON, } from './EnvironmentEgressPolicy';
17
17
  import { EnvironmentProvisionSpecRequestFromJSON, EnvironmentProvisionSpecRequestToJSON, } from './EnvironmentProvisionSpecRequest';
18
+ import { EnvironmentHooksRequestFromJSON, EnvironmentHooksRequestToJSON, } from './EnvironmentHooksRequest';
18
19
  /**
19
20
  * Check if a given object implements the UpdateEnvironmentRequest interface.
20
21
  */
@@ -34,6 +35,8 @@ export function UpdateEnvironmentRequestFromJSONTyped(json, ignoreDiscriminator)
34
35
  'egressPolicy': json['egressPolicy'] == null ? undefined : EnvironmentEgressPolicyFromJSON(json['egressPolicy']),
35
36
  'ingressPolicy': json['ingressPolicy'] == null ? undefined : EnvironmentIngressPolicyFromJSON(json['ingressPolicy']),
36
37
  'provisionSpec': json['provisionSpec'] == null ? undefined : EnvironmentProvisionSpecRequestFromJSON(json['provisionSpec']),
38
+ 'workingDirectory': json['workingDirectory'] == null ? undefined : json['workingDirectory'],
39
+ 'hooks': json['hooks'] == null ? undefined : EnvironmentHooksRequestFromJSON(json['hooks']),
37
40
  'labels': json['labels'] == null ? undefined : json['labels'],
38
41
  };
39
42
  }
@@ -50,6 +53,8 @@ export function UpdateEnvironmentRequestToJSONTyped(value, ignoreDiscriminator =
50
53
  'egressPolicy': EnvironmentEgressPolicyToJSON(value['egressPolicy']),
51
54
  'ingressPolicy': EnvironmentIngressPolicyToJSON(value['ingressPolicy']),
52
55
  'provisionSpec': EnvironmentProvisionSpecRequestToJSON(value['provisionSpec']),
56
+ 'workingDirectory': value['workingDirectory'],
57
+ 'hooks': EnvironmentHooksRequestToJSON(value['hooks']),
53
58
  'labels': value['labels'],
54
59
  };
55
60
  }
@@ -124,6 +124,9 @@ export * from './Environment';
124
124
  export * from './EnvironmentDisk';
125
125
  export * from './EnvironmentDiskMount';
126
126
  export * from './EnvironmentEgressPolicy';
127
+ export * from './EnvironmentHook';
128
+ export * from './EnvironmentHooks';
129
+ export * from './EnvironmentHooksRequest';
127
130
  export * from './EnvironmentIngressPolicy';
128
131
  export * from './EnvironmentMount';
129
132
  export * from './EnvironmentPlatform';
@@ -126,6 +126,9 @@ export * from './Environment';
126
126
  export * from './EnvironmentDisk';
127
127
  export * from './EnvironmentDiskMount';
128
128
  export * from './EnvironmentEgressPolicy';
129
+ export * from './EnvironmentHook';
130
+ export * from './EnvironmentHooks';
131
+ export * from './EnvironmentHooksRequest';
129
132
  export * from './EnvironmentIngressPolicy';
130
133
  export * from './EnvironmentMount';
131
134
  export * from './EnvironmentPlatform';
@@ -45,6 +45,12 @@ export interface ApiKey {
45
45
  * @memberof ApiKey
46
46
  */
47
47
  lastUsedAt?: Date;
48
+ /**
49
+ * When the key stops signing its principal in, fixed at create; absent when it never expires
50
+ * @type {Date}
51
+ * @memberof ApiKey
52
+ */
53
+ expiresAt?: Date;
48
54
  /**
49
55
  * Creation timestamp
50
56
  * @type {Date}
@@ -58,6 +58,7 @@ function ApiKeyFromJSONTyped(json, ignoreDiscriminator) {
58
58
  'principalId': json['principalId'],
59
59
  'name': json['name'],
60
60
  'lastUsedAt': json['lastUsedAt'] == null ? undefined : (new Date(json['lastUsedAt'])),
61
+ 'expiresAt': json['expiresAt'] == null ? undefined : (new Date(json['expiresAt'])),
61
62
  'createdAt': (new Date(json['createdAt'])),
62
63
  'updatedAt': (new Date(json['updatedAt'])),
63
64
  };
@@ -75,6 +76,7 @@ function ApiKeyToJSONTyped(value, ignoreDiscriminator = false) {
75
76
  'principalId': value['principalId'],
76
77
  'name': value['name'],
77
78
  'lastUsedAt': value['lastUsedAt'] == null ? value['lastUsedAt'] : value['lastUsedAt'].toISOString(),
79
+ 'expiresAt': value['expiresAt'] == null ? value['expiresAt'] : value['expiresAt'].toISOString(),
78
80
  'createdAt': value['createdAt'].toISOString(),
79
81
  'updatedAt': value['updatedAt'].toISOString(),
80
82
  };
@@ -20,7 +20,7 @@ import type { ComputeProviderHealth } from './ComputeProviderHealth';
20
20
  */
21
21
  export interface ComputeProvider {
22
22
  /**
23
- * Compute provider id: a self-hosted record's TypeID, or a managed provider's key
23
+ * Compute provider id: a self-hosted record's TypeID, or cprov_orchestra for the managed provider
24
24
  * @type {string}
25
25
  * @memberof ComputeProvider
26
26
  */
@@ -32,7 +32,7 @@ export interface ComputeProvider {
32
32
  */
33
33
  kind: ComputeProviderKindEnum;
34
34
  /**
35
- * A self-hosted record's slug, fixed at create
35
+ * A self-hosted record's slug, fixed at create, or orchestra for the managed provider
36
36
  * @type {string}
37
37
  * @memberof ComputeProvider
38
38
  */
@@ -92,7 +92,7 @@ export interface ComputeProvider {
92
92
  */
93
93
  state?: ComputeProviderStateEnum;
94
94
  /**
95
- * The operating systems and architectures a managed provider runs
95
+ * The operating systems and architectures the managed provider runs
96
96
  * @type {Array<EnvironmentPlatform>}
97
97
  * @memberof ComputeProvider
98
98
  */
@@ -16,7 +16,7 @@
16
16
  */
17
17
  export interface CreateApiKeyRequest {
18
18
  /**
19
- * The type of the principal the key signs in. A key of a type that cannot sign in yet is refused 403; today a service account's key alone signs in
19
+ * The type of the principal the key signs in. A key of a type that cannot sign in is refused 403; a person's key and a service account's key sign in, and an agent's does not
20
20
  * @type {CreateApiKeyRequestPrincipalTypeEnum}
21
21
  * @memberof CreateApiKeyRequest
22
22
  */
@@ -33,6 +33,12 @@ export interface CreateApiKeyRequest {
33
33
  * @memberof CreateApiKeyRequest
34
34
  */
35
35
  name: string;
36
+ /**
37
+ * When the key stops signing its principal in, after the request's time and fixed at create; absent means the key never expires
38
+ * @type {Date}
39
+ * @memberof CreateApiKeyRequest
40
+ */
41
+ expiresAt?: Date;
36
42
  }
37
43
  /**
38
44
  * @export
@@ -50,6 +50,7 @@ function CreateApiKeyRequestFromJSONTyped(json, ignoreDiscriminator) {
50
50
  'principalType': json['principalType'],
51
51
  'principalId': json['principalId'],
52
52
  'name': json['name'],
53
+ 'expiresAt': json['expiresAt'] == null ? undefined : (new Date(json['expiresAt'])),
53
54
  };
54
55
  }
55
56
  function CreateApiKeyRequestToJSON(json) {
@@ -63,5 +64,6 @@ function CreateApiKeyRequestToJSONTyped(value, ignoreDiscriminator = false) {
63
64
  'principalType': value['principalType'],
64
65
  'principalId': value['principalId'],
65
66
  'name': value['name'],
67
+ 'expiresAt': value['expiresAt'] == null ? value['expiresAt'] : value['expiresAt'].toISOString(),
66
68
  };
67
69
  }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { EnvironmentIngressPolicy } from './EnvironmentIngressPolicy';
13
+ import type { EnvironmentHooks } from './EnvironmentHooks';
13
14
  import type { EnvironmentPlatformRequest } from './EnvironmentPlatformRequest';
14
15
  import type { EnvironmentEgressPolicy } from './EnvironmentEgressPolicy';
15
16
  import type { EnvironmentProvisionSpecRequest } from './EnvironmentProvisionSpecRequest';
@@ -67,6 +68,18 @@ export interface CreateEnvironmentRequest {
67
68
  * @memberof CreateEnvironmentRequest
68
69
  */
69
70
  projectId?: string;
71
+ /**
72
+ * The absolute folder every conversation's agent starts in, on every kind: a path starting with / on linux and macos, and a drive or UNC path on windows, at most 1024 characters. A machine keeps the value it was created with. The worker creates the folder when it is missing, owned by the account the agent runs as, and an agent placement whose folder cannot be created or entered fails. Absent, the agent starts in the worker's own folder for its harness. An empty value declares none.
73
+ * @type {string}
74
+ * @memberof CreateEnvironmentRequest
75
+ */
76
+ workingDirectory?: string;
77
+ /**
78
+ * Scripts the worker runs at points of a machine's and an agent's life. onStartMachine and onStartAgent are built; onStartSession, onStopSession, onStopAgent and onStopMachine are reserved.
79
+ * @type {EnvironmentHooks}
80
+ * @memberof CreateEnvironmentRequest
81
+ */
82
+ hooks?: EnvironmentHooks;
70
83
  /**
71
84
  * Labels: the customer's key-to-value tags; the platform reads no key
72
85
  * @type {{ [key: string]: string; }}
@@ -20,6 +20,7 @@ exports.CreateEnvironmentRequestFromJSONTyped = CreateEnvironmentRequestFromJSON
20
20
  exports.CreateEnvironmentRequestToJSON = CreateEnvironmentRequestToJSON;
21
21
  exports.CreateEnvironmentRequestToJSONTyped = CreateEnvironmentRequestToJSONTyped;
22
22
  const EnvironmentIngressPolicy_1 = require("./EnvironmentIngressPolicy");
23
+ const EnvironmentHooks_1 = require("./EnvironmentHooks");
23
24
  const EnvironmentPlatformRequest_1 = require("./EnvironmentPlatformRequest");
24
25
  const EnvironmentEgressPolicy_1 = require("./EnvironmentEgressPolicy");
25
26
  const EnvironmentProvisionSpecRequest_1 = require("./EnvironmentProvisionSpecRequest");
@@ -54,6 +55,8 @@ function CreateEnvironmentRequestFromJSONTyped(json, ignoreDiscriminator) {
54
55
  'kind': json['kind'] == null ? undefined : json['kind'],
55
56
  'provisionSpec': json['provisionSpec'] == null ? undefined : (0, EnvironmentProvisionSpecRequest_1.EnvironmentProvisionSpecRequestFromJSON)(json['provisionSpec']),
56
57
  'projectId': json['projectId'] == null ? undefined : json['projectId'],
58
+ 'workingDirectory': json['workingDirectory'] == null ? undefined : json['workingDirectory'],
59
+ 'hooks': json['hooks'] == null ? undefined : (0, EnvironmentHooks_1.EnvironmentHooksFromJSON)(json['hooks']),
57
60
  'labels': json['labels'] == null ? undefined : json['labels'],
58
61
  };
59
62
  }
@@ -73,6 +76,8 @@ function CreateEnvironmentRequestToJSONTyped(value, ignoreDiscriminator = false)
73
76
  'kind': value['kind'],
74
77
  'provisionSpec': (0, EnvironmentProvisionSpecRequest_1.EnvironmentProvisionSpecRequestToJSON)(value['provisionSpec']),
75
78
  'projectId': value['projectId'],
79
+ 'workingDirectory': value['workingDirectory'],
80
+ 'hooks': (0, EnvironmentHooks_1.EnvironmentHooksToJSON)(value['hooks']),
76
81
  'labels': value['labels'],
77
82
  };
78
83
  }
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { EnvironmentIngressPolicy } from './EnvironmentIngressPolicy';
13
13
  import type { EnvironmentPlatformWithRuntime } from './EnvironmentPlatformWithRuntime';
14
+ import type { EnvironmentHooks } from './EnvironmentHooks';
14
15
  import type { EnvironmentEgressPolicy } from './EnvironmentEgressPolicy';
15
16
  import type { EnvironmentProvisionSpec } from './EnvironmentProvisionSpec';
16
17
  /**
@@ -79,6 +80,18 @@ export interface Environment {
79
80
  * @memberof Environment
80
81
  */
81
82
  provisionSpec?: EnvironmentProvisionSpec;
83
+ /**
84
+ * The absolute folder every conversation's agent starts in, on every kind: a path starting with / on linux and macos, and a drive or UNC path on windows, at most 1024 characters. A machine keeps the value it was created with. The worker creates the folder when it is missing, owned by the account the agent runs as, and an agent placement whose folder cannot be created or entered fails. Absent, the agent starts in the worker's own folder for its harness.
85
+ * @type {string}
86
+ * @memberof Environment
87
+ */
88
+ workingDirectory?: string;
89
+ /**
90
+ * Scripts the worker runs at points of a machine's and an agent's life. onStartMachine and onStartAgent are built; onStartSession, onStopSession, onStopAgent and onStopMachine are reserved.
91
+ * @type {EnvironmentHooks}
92
+ * @memberof Environment
93
+ */
94
+ hooks?: EnvironmentHooks;
82
95
  /**
83
96
  * Creation timestamp
84
97
  * @type {Date}
@@ -21,6 +21,7 @@ exports.EnvironmentToJSON = EnvironmentToJSON;
21
21
  exports.EnvironmentToJSONTyped = EnvironmentToJSONTyped;
22
22
  const EnvironmentIngressPolicy_1 = require("./EnvironmentIngressPolicy");
23
23
  const EnvironmentPlatformWithRuntime_1 = require("./EnvironmentPlatformWithRuntime");
24
+ const EnvironmentHooks_1 = require("./EnvironmentHooks");
24
25
  const EnvironmentEgressPolicy_1 = require("./EnvironmentEgressPolicy");
25
26
  const EnvironmentProvisionSpec_1 = require("./EnvironmentProvisionSpec");
26
27
  /**
@@ -74,6 +75,8 @@ function EnvironmentFromJSONTyped(json, ignoreDiscriminator) {
74
75
  'ingressPolicy': json['ingressPolicy'] == null ? undefined : (0, EnvironmentIngressPolicy_1.EnvironmentIngressPolicyFromJSON)(json['ingressPolicy']),
75
76
  'kind': json['kind'],
76
77
  'provisionSpec': json['provisionSpec'] == null ? undefined : (0, EnvironmentProvisionSpec_1.EnvironmentProvisionSpecFromJSON)(json['provisionSpec']),
78
+ 'workingDirectory': json['workingDirectory'] == null ? undefined : json['workingDirectory'],
79
+ 'hooks': json['hooks'] == null ? undefined : (0, EnvironmentHooks_1.EnvironmentHooksFromJSON)(json['hooks']),
77
80
  'createdAt': (new Date(json['createdAt'])),
78
81
  'updatedAt': (new Date(json['updatedAt'])),
79
82
  'labels': json['labels'],
@@ -96,6 +99,8 @@ function EnvironmentToJSONTyped(value, ignoreDiscriminator = false) {
96
99
  'egressPolicy': (0, EnvironmentEgressPolicy_1.EnvironmentEgressPolicyToJSON)(value['egressPolicy']),
97
100
  'ingressPolicy': (0, EnvironmentIngressPolicy_1.EnvironmentIngressPolicyToJSON)(value['ingressPolicy']),
98
101
  'provisionSpec': (0, EnvironmentProvisionSpec_1.EnvironmentProvisionSpecToJSON)(value['provisionSpec']),
102
+ 'workingDirectory': value['workingDirectory'],
103
+ 'hooks': (0, EnvironmentHooks_1.EnvironmentHooksToJSON)(value['hooks']),
99
104
  'createdAt': value['createdAt'].toISOString(),
100
105
  'updatedAt': value['updatedAt'].toISOString(),
101
106
  'labels': value['labels'],
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Orchestra platform API
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface EnvironmentHook
16
+ */
17
+ export interface EnvironmentHook {
18
+ /**
19
+ * The script's text. Required, at most 64 KiB.
20
+ * @type {string}
21
+ * @memberof EnvironmentHook
22
+ */
23
+ script: string;
24
+ /**
25
+ * How long the script may run, in whole seconds. onStartAgent takes 1 to 240, and absent means 120. onStartMachine takes 1 to 3600, and absent means the deployment's bound, 600 unless it sets another. At the bound the worker kills the script and every process it started.
26
+ * @type {number}
27
+ * @memberof EnvironmentHook
28
+ */
29
+ timeoutSeconds?: number;
30
+ }
31
+ /**
32
+ * Check if a given object implements the EnvironmentHook interface.
33
+ */
34
+ export declare function instanceOfEnvironmentHook(value: object): value is EnvironmentHook;
35
+ export declare function EnvironmentHookFromJSON(json: any): EnvironmentHook;
36
+ export declare function EnvironmentHookFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnvironmentHook;
37
+ export declare function EnvironmentHookToJSON(json: any): EnvironmentHook;
38
+ export declare function EnvironmentHookToJSONTyped(value?: EnvironmentHook | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Orchestra platform API
6
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfEnvironmentHook = instanceOfEnvironmentHook;
17
+ exports.EnvironmentHookFromJSON = EnvironmentHookFromJSON;
18
+ exports.EnvironmentHookFromJSONTyped = EnvironmentHookFromJSONTyped;
19
+ exports.EnvironmentHookToJSON = EnvironmentHookToJSON;
20
+ exports.EnvironmentHookToJSONTyped = EnvironmentHookToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the EnvironmentHook interface.
23
+ */
24
+ function instanceOfEnvironmentHook(value) {
25
+ if (!('script' in value) || value['script'] === undefined)
26
+ return false;
27
+ return true;
28
+ }
29
+ function EnvironmentHookFromJSON(json) {
30
+ return EnvironmentHookFromJSONTyped(json, false);
31
+ }
32
+ function EnvironmentHookFromJSONTyped(json, ignoreDiscriminator) {
33
+ if (json == null) {
34
+ return json;
35
+ }
36
+ return {
37
+ 'script': json['script'],
38
+ 'timeoutSeconds': json['timeoutSeconds'] == null ? undefined : json['timeoutSeconds'],
39
+ };
40
+ }
41
+ function EnvironmentHookToJSON(json) {
42
+ return EnvironmentHookToJSONTyped(json, false);
43
+ }
44
+ function EnvironmentHookToJSONTyped(value, ignoreDiscriminator = false) {
45
+ if (value == null) {
46
+ return value;
47
+ }
48
+ return {
49
+ 'script': value['script'],
50
+ 'timeoutSeconds': value['timeoutSeconds'],
51
+ };
52
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Orchestra platform API
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { EnvironmentHook } from './EnvironmentHook';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface EnvironmentHooks
17
+ */
18
+ export interface EnvironmentHooks {
19
+ /**
20
+ * A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. Provisioned environments only. A machine keeps the value it was created with. provisionSpec.setup is the same script under its older name.
21
+ * @type {EnvironmentHook}
22
+ * @memberof EnvironmentHooks
23
+ */
24
+ onStartMachine?: EnvironmentHook;
25
+ /**
26
+ * A script the worker runs once for each agent placement, after the agent's content is installed and before its first conversation starts: as the account the agent runs as, in workingDirectory, with the agent's environment and the egress edge's authority, so a rule binding a credential applies to it. bash -e on linux and macos, PowerShell on windows. A script that fails or runs past its bound fails the placement with on_start_agent_failed. A machine keeps the value it was created with.
27
+ * @type {EnvironmentHook}
28
+ * @memberof EnvironmentHooks
29
+ */
30
+ onStartAgent?: EnvironmentHook;
31
+ }
32
+ /**
33
+ * Check if a given object implements the EnvironmentHooks interface.
34
+ */
35
+ export declare function instanceOfEnvironmentHooks(value: object): value is EnvironmentHooks;
36
+ export declare function EnvironmentHooksFromJSON(json: any): EnvironmentHooks;
37
+ export declare function EnvironmentHooksFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnvironmentHooks;
38
+ export declare function EnvironmentHooksToJSON(json: any): EnvironmentHooks;
39
+ export declare function EnvironmentHooksToJSONTyped(value?: EnvironmentHooks | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Orchestra platform API
6
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfEnvironmentHooks = instanceOfEnvironmentHooks;
17
+ exports.EnvironmentHooksFromJSON = EnvironmentHooksFromJSON;
18
+ exports.EnvironmentHooksFromJSONTyped = EnvironmentHooksFromJSONTyped;
19
+ exports.EnvironmentHooksToJSON = EnvironmentHooksToJSON;
20
+ exports.EnvironmentHooksToJSONTyped = EnvironmentHooksToJSONTyped;
21
+ const EnvironmentHook_1 = require("./EnvironmentHook");
22
+ /**
23
+ * Check if a given object implements the EnvironmentHooks interface.
24
+ */
25
+ function instanceOfEnvironmentHooks(value) {
26
+ return true;
27
+ }
28
+ function EnvironmentHooksFromJSON(json) {
29
+ return EnvironmentHooksFromJSONTyped(json, false);
30
+ }
31
+ function EnvironmentHooksFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'onStartMachine': json['onStartMachine'] == null ? undefined : (0, EnvironmentHook_1.EnvironmentHookFromJSON)(json['onStartMachine']),
37
+ 'onStartAgent': json['onStartAgent'] == null ? undefined : (0, EnvironmentHook_1.EnvironmentHookFromJSON)(json['onStartAgent']),
38
+ };
39
+ }
40
+ function EnvironmentHooksToJSON(json) {
41
+ return EnvironmentHooksToJSONTyped(json, false);
42
+ }
43
+ function EnvironmentHooksToJSONTyped(value, ignoreDiscriminator = false) {
44
+ if (value == null) {
45
+ return value;
46
+ }
47
+ return {
48
+ 'onStartMachine': (0, EnvironmentHook_1.EnvironmentHookToJSON)(value['onStartMachine']),
49
+ 'onStartAgent': (0, EnvironmentHook_1.EnvironmentHookToJSON)(value['onStartAgent']),
50
+ };
51
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Orchestra platform API
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { EnvironmentHook } from './EnvironmentHook';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface EnvironmentHooksRequest
17
+ */
18
+ export interface EnvironmentHooksRequest {
19
+ /**
20
+ * A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. Provisioned environments only. A machine keeps the value it was created with. provisionSpec.setup is the same script under its older name. On an update, absent leaves the stored hook and null removes it.
21
+ * @type {EnvironmentHook}
22
+ * @memberof EnvironmentHooksRequest
23
+ */
24
+ onStartMachine?: EnvironmentHook | null;
25
+ /**
26
+ * A script the worker runs once for each agent placement, after the agent's content is installed and before its first conversation starts: as the account the agent runs as, in workingDirectory, with the agent's environment and the egress edge's authority, so a rule binding a credential applies to it. bash -e on linux and macos, PowerShell on windows. A script that fails or runs past its bound fails the placement with on_start_agent_failed. A machine keeps the value it was created with. On an update, absent leaves the stored hook and null removes it.
27
+ * @type {EnvironmentHook}
28
+ * @memberof EnvironmentHooksRequest
29
+ */
30
+ onStartAgent?: EnvironmentHook | null;
31
+ }
32
+ /**
33
+ * Check if a given object implements the EnvironmentHooksRequest interface.
34
+ */
35
+ export declare function instanceOfEnvironmentHooksRequest(value: object): value is EnvironmentHooksRequest;
36
+ export declare function EnvironmentHooksRequestFromJSON(json: any): EnvironmentHooksRequest;
37
+ export declare function EnvironmentHooksRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): EnvironmentHooksRequest;
38
+ export declare function EnvironmentHooksRequestToJSON(json: any): EnvironmentHooksRequest;
39
+ export declare function EnvironmentHooksRequestToJSONTyped(value?: EnvironmentHooksRequest | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Orchestra platform API
6
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfEnvironmentHooksRequest = instanceOfEnvironmentHooksRequest;
17
+ exports.EnvironmentHooksRequestFromJSON = EnvironmentHooksRequestFromJSON;
18
+ exports.EnvironmentHooksRequestFromJSONTyped = EnvironmentHooksRequestFromJSONTyped;
19
+ exports.EnvironmentHooksRequestToJSON = EnvironmentHooksRequestToJSON;
20
+ exports.EnvironmentHooksRequestToJSONTyped = EnvironmentHooksRequestToJSONTyped;
21
+ const EnvironmentHook_1 = require("./EnvironmentHook");
22
+ /**
23
+ * Check if a given object implements the EnvironmentHooksRequest interface.
24
+ */
25
+ function instanceOfEnvironmentHooksRequest(value) {
26
+ return true;
27
+ }
28
+ function EnvironmentHooksRequestFromJSON(json) {
29
+ return EnvironmentHooksRequestFromJSONTyped(json, false);
30
+ }
31
+ function EnvironmentHooksRequestFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'onStartMachine': json['onStartMachine'] == null ? undefined : (0, EnvironmentHook_1.EnvironmentHookFromJSON)(json['onStartMachine']),
37
+ 'onStartAgent': json['onStartAgent'] == null ? undefined : (0, EnvironmentHook_1.EnvironmentHookFromJSON)(json['onStartAgent']),
38
+ };
39
+ }
40
+ function EnvironmentHooksRequestToJSON(json) {
41
+ return EnvironmentHooksRequestToJSONTyped(json, false);
42
+ }
43
+ function EnvironmentHooksRequestToJSONTyped(value, ignoreDiscriminator = false) {
44
+ if (value == null) {
45
+ return value;
46
+ }
47
+ return {
48
+ 'onStartMachine': (0, EnvironmentHook_1.EnvironmentHookToJSON)(value['onStartMachine']),
49
+ 'onStartAgent': (0, EnvironmentHook_1.EnvironmentHookToJSON)(value['onStartAgent']),
50
+ };
51
+ }
@@ -56,9 +56,10 @@ export interface EnvironmentProvisionSpec {
56
56
  */
57
57
  command?: Array<string>;
58
58
  /**
59
- * A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. At most 64 KiB.
59
+ * Deprecated: use hooks.onStartMachine. A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. At most 64 KiB. A request may send it beside hooks.onStartMachine only when the two scripts are the same, and a read carries both.
60
60
  * @type {string}
61
61
  * @memberof EnvironmentProvisionSpec
62
+ * @deprecated
62
63
  */
63
64
  setup?: string;
64
65
  /**
@@ -48,9 +48,10 @@ export interface EnvironmentProvisionSpecRequest {
48
48
  */
49
49
  command?: Array<string>;
50
50
  /**
51
- * A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. At most 64 KiB. On an update, absent leaves the stored value and an empty one clears it.
51
+ * Deprecated: use hooks.onStartMachine. A script run once as root on each new machine before it registers: bash on Linux, PowerShell on Windows. At most 64 KiB. A request may send it beside hooks.onStartMachine only when the two scripts are the same, and a read carries both. On an update, absent leaves the stored value and an empty one clears it.
52
52
  * @type {string}
53
53
  * @memberof EnvironmentProvisionSpecRequest
54
+ * @deprecated
54
55
  */
55
56
  setup?: string;
56
57
  /**
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { EnvironmentIngressPolicy } from './EnvironmentIngressPolicy';
13
+ import type { EnvironmentHooks } from './EnvironmentHooks';
13
14
  import type { EnvironmentVolumeMount } from './EnvironmentVolumeMount';
14
15
  import type { EnvironmentEgressPolicy } from './EnvironmentEgressPolicy';
15
16
  import type { EnvironmentDisk } from './EnvironmentDisk';
@@ -137,6 +138,24 @@ export interface EnvironmentSnapshot {
137
138
  * @memberof EnvironmentSnapshot
138
139
  */
139
140
  shutdownGracePeriodSeconds?: number;
141
+ /**
142
+ * Working directory captured at machine creation; absent means none was declared
143
+ * @type {string}
144
+ * @memberof EnvironmentSnapshot
145
+ */
146
+ workingDirectory?: string;
147
+ /**
148
+ * Hooks captured at machine creation; absent means none was declared
149
+ * @type {EnvironmentHooks}
150
+ * @memberof EnvironmentSnapshot
151
+ */
152
+ hooks?: EnvironmentHooks;
153
+ /**
154
+ * Setup script bound captured at machine creation; absent means the deployment's
155
+ * @type {number}
156
+ * @memberof EnvironmentSnapshot
157
+ */
158
+ setupTimeoutSeconds?: number;
140
159
  }
141
160
  /**
142
161
  * @export