@codyswann/lisa 2.317.3 → 2.317.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/upstream-evidence-manifest.js +3 -3
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-aws/SKILL.md +32 -7
- package/plugins/lisa/scripts/remote-agent-aws-setup.sh +8 -2
- package/plugins/lisa/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/lisa/skills/lisa-setup-remote-aws/SKILL.md +32 -7
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/remote-agent-aws-setup.sh +8 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/lisa-agy/skills/lisa-setup-remote-aws/SKILL.md +32 -7
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/scripts/remote-agent-aws-setup.sh +8 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/lisa-copilot/skills/lisa-setup-remote-aws/SKILL.md +32 -7
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/scripts/remote-agent-aws-setup.sh +8 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/lisa-cursor/skills/lisa-setup-remote-aws/SKILL.md +32 -7
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/scripts/remote-agent-aws-setup.sh +8 -2
- package/plugins/src/base/skills/lisa-secrets-access/SKILL.md +7 -0
- package/plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md +32 -7
|
@@ -399,7 +399,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
399
399
|
"plugins/src/base/scripts/queue-health-classification.mjs": "07fd596da5792d8bd29f2d51584c59011d3d06256eae601b27a3c72730b42333",
|
|
400
400
|
"plugins/src/base/scripts/queue-status-build-readers.mjs": "1e05181dc8fbe2a4f0c04ce73fdfe1c3a7fc1777cb66e95d7e9a593559c8ca27",
|
|
401
401
|
"plugins/src/base/scripts/queue-status-prd-readers.mjs": "32b4366fc292062c869793aeaf5b006ff400df5da09ee510f862e15d59a77770",
|
|
402
|
-
"plugins/src/base/scripts/remote-agent-aws-setup.sh": "
|
|
402
|
+
"plugins/src/base/scripts/remote-agent-aws-setup.sh": "e3fc922d9b868e0f5a72c7a16a4c32e4a1b3f5278b7c8563648e4f05c49072c5",
|
|
403
403
|
"plugins/src/base/skills/lisa-acceptance-criteria/SKILL.md": "b4289ec04de657f0eeefaed56939fa171c2f8a11086bd225db39130f4a609e95",
|
|
404
404
|
"plugins/src/base/skills/lisa-agent-design-best-practices/SKILL.md": "2c487df59f54682d744e71f78a2bccccf9e3a6510705b4ff6be7edfa4be2d43b",
|
|
405
405
|
"plugins/src/base/skills/lisa-agent-ready/SKILL.md": "13f2e0f50287a04ed9a036ef1c547563b5f6f6325b2b35f6746d46a5ed4d15df",
|
|
@@ -535,7 +535,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
535
535
|
"plugins/src/base/skills/lisa-review-local/SKILL.md": "66defe83565ab3633a13e69ce394de64f17f2c2bddbf046bc12c8bbd0ca57f5c",
|
|
536
536
|
"plugins/src/base/skills/lisa-rework-triage/SKILL.md": "3389740fc0f162be0b684625424e716a0a3e4c99c8cdb4317ec82dcfcf7b57c7",
|
|
537
537
|
"plugins/src/base/skills/lisa-root-cause-analysis/SKILL.md": "3fa14217ca36b238ebb8203d18f10eaaf98a3647f949cdada6cb9f56ddf9ed50",
|
|
538
|
-
"plugins/src/base/skills/lisa-secrets-access/SKILL.md": "
|
|
538
|
+
"plugins/src/base/skills/lisa-secrets-access/SKILL.md": "9d7346864b04304e5b4bbb90512c7f2e701d69ab012b4fcf3b7b687221fc76bd",
|
|
539
539
|
"plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs": "aca23d562016bfda30d0ace0f77668edb91e5bcda1bf278036353671c53e9cbc",
|
|
540
540
|
"plugins/src/base/skills/lisa-secrets-access/scripts/envfile.mjs": "be4e38ce85f9268b52b29dbde264ecd8d50973c2b63a15410336234a921d9644",
|
|
541
541
|
"plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs": "4b4448cd680a8fe7b1f51bad840c2655f898e9bc08ca06c385cd1d21dca3c3d4",
|
|
@@ -558,7 +558,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
558
558
|
"plugins/src/base/skills/lisa-setup-kane/SKILL.md": "fe50024a4f896af01716f2435f57227b1f8de61803e80bf3e3c3247ec179b103",
|
|
559
559
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": "ec76f832a6df6f58b163f7f5ba6826ed2fcbddc91e44a8372e874858e4d0c518",
|
|
560
560
|
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "f5a1e9290789fd1c33675168d30461fb24a11c98a433ef777c1f536bc2f905ef",
|
|
561
|
-
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "
|
|
561
|
+
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "80fbf157f9c562c033886c25a99b37356602edd9e61cd2d492f339769ddcf97e",
|
|
562
562
|
"plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "cf0f54c4960c682c5135a5bc9db4701c2e95fec07faf4b041ede80b9cbc61072",
|
|
563
563
|
"plugins/src/base/skills/lisa-setup-remote-env/assets/setup.sh": "cf60c686b6861c33910f8175015dab2b4e33505af900a85c592d6ca061a8f7c4",
|
|
564
564
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "1e3f57c34edd65129a157f7418524594ca92b5472978bf5be1641981f4f1afbe",
|
package/package.json
CHANGED
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"brace-expansion": ">=5.0.8"
|
|
116
116
|
},
|
|
117
117
|
"name": "@codyswann/lisa",
|
|
118
|
-
"version": "2.317.
|
|
118
|
+
"version": "2.317.4",
|
|
119
119
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
120
120
|
"main": "dist/index.js",
|
|
121
121
|
"exports": {
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
# source copied into every generated Lisa agent plugin.
|
|
4
4
|
#
|
|
5
5
|
# Required secret:
|
|
6
|
-
# LISA_AWS_BOOTSTRAP_JSON
|
|
7
|
-
#
|
|
6
|
+
# LISA_AWS_BOOTSTRAP_JSON The complete remote-agent bootstrap bundle, as one
|
|
7
|
+
# JSON value. cdkstarter's IAM kit emits it, but this
|
|
8
|
+
# script neither knows nor cares which store it came
|
|
9
|
+
# from — resolve it through lisa-secrets-access like
|
|
10
|
+
# any other secret. Note that a project whose
|
|
11
|
+
# provider is AWS Secrets Manager cannot keep it
|
|
12
|
+
# there: reading it would need the very credential it
|
|
13
|
+
# contains.
|
|
8
14
|
# Optional plain variables:
|
|
9
15
|
# LISA_REMOTE_AGENT claude | codex | cursor | copilot | agy | opencode
|
|
10
16
|
# LISA_AWS_DEFAULT_PROFILE Defaults to dev, then the first available profile.
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
# source copied into every generated Lisa agent plugin.
|
|
4
4
|
#
|
|
5
5
|
# Required secret:
|
|
6
|
-
# LISA_AWS_BOOTSTRAP_JSON
|
|
7
|
-
#
|
|
6
|
+
# LISA_AWS_BOOTSTRAP_JSON The complete remote-agent bootstrap bundle, as one
|
|
7
|
+
# JSON value. cdkstarter's IAM kit emits it, but this
|
|
8
|
+
# script neither knows nor cares which store it came
|
|
9
|
+
# from — resolve it through lisa-secrets-access like
|
|
10
|
+
# any other secret. Note that a project whose
|
|
11
|
+
# provider is AWS Secrets Manager cannot keep it
|
|
12
|
+
# there: reading it would need the very credential it
|
|
13
|
+
# contains.
|
|
8
14
|
# Optional plain variables:
|
|
9
15
|
# LISA_REMOTE_AGENT claude | codex | cursor | copilot | agy | opencode
|
|
10
16
|
# LISA_AWS_DEFAULT_PROFILE Defaults to dev, then the first available profile.
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
# source copied into every generated Lisa agent plugin.
|
|
4
4
|
#
|
|
5
5
|
# Required secret:
|
|
6
|
-
# LISA_AWS_BOOTSTRAP_JSON
|
|
7
|
-
#
|
|
6
|
+
# LISA_AWS_BOOTSTRAP_JSON The complete remote-agent bootstrap bundle, as one
|
|
7
|
+
# JSON value. cdkstarter's IAM kit emits it, but this
|
|
8
|
+
# script neither knows nor cares which store it came
|
|
9
|
+
# from — resolve it through lisa-secrets-access like
|
|
10
|
+
# any other secret. Note that a project whose
|
|
11
|
+
# provider is AWS Secrets Manager cannot keep it
|
|
12
|
+
# there: reading it would need the very credential it
|
|
13
|
+
# contains.
|
|
8
14
|
# Optional plain variables:
|
|
9
15
|
# LISA_REMOTE_AGENT claude | codex | cursor | copilot | agy | opencode
|
|
10
16
|
# LISA_AWS_DEFAULT_PROFILE Defaults to dev, then the first available profile.
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
# source copied into every generated Lisa agent plugin.
|
|
4
4
|
#
|
|
5
5
|
# Required secret:
|
|
6
|
-
# LISA_AWS_BOOTSTRAP_JSON
|
|
7
|
-
#
|
|
6
|
+
# LISA_AWS_BOOTSTRAP_JSON The complete remote-agent bootstrap bundle, as one
|
|
7
|
+
# JSON value. cdkstarter's IAM kit emits it, but this
|
|
8
|
+
# script neither knows nor cares which store it came
|
|
9
|
+
# from — resolve it through lisa-secrets-access like
|
|
10
|
+
# any other secret. Note that a project whose
|
|
11
|
+
# provider is AWS Secrets Manager cannot keep it
|
|
12
|
+
# there: reading it would need the very credential it
|
|
13
|
+
# contains.
|
|
8
14
|
# Optional plain variables:
|
|
9
15
|
# LISA_REMOTE_AGENT claude | codex | cursor | copilot | agy | opencode
|
|
10
16
|
# LISA_AWS_DEFAULT_PROFILE Defaults to dev, then the first available profile.
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.317.
|
|
3
|
+
"version": "2.317.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.317.
|
|
3
|
+
"version": "2.317.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.317.
|
|
3
|
+
"version": "2.317.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.317.
|
|
3
|
+
"version": "2.317.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.317.
|
|
3
|
+
"version": "2.317.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
# source copied into every generated Lisa agent plugin.
|
|
4
4
|
#
|
|
5
5
|
# Required secret:
|
|
6
|
-
# LISA_AWS_BOOTSTRAP_JSON
|
|
7
|
-
#
|
|
6
|
+
# LISA_AWS_BOOTSTRAP_JSON The complete remote-agent bootstrap bundle, as one
|
|
7
|
+
# JSON value. cdkstarter's IAM kit emits it, but this
|
|
8
|
+
# script neither knows nor cares which store it came
|
|
9
|
+
# from — resolve it through lisa-secrets-access like
|
|
10
|
+
# any other secret. Note that a project whose
|
|
11
|
+
# provider is AWS Secrets Manager cannot keep it
|
|
12
|
+
# there: reading it would need the very credential it
|
|
13
|
+
# contains.
|
|
8
14
|
# Optional plain variables:
|
|
9
15
|
# LISA_REMOTE_AGENT claude | codex | cursor | copilot | agy | opencode
|
|
10
16
|
# LISA_AWS_DEFAULT_PROFILE Defaults to dev, then the first available profile.
|
|
@@ -198,6 +198,13 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
198
198
|
| `aws` | `aws secretsmanager get-secret-value --secret-id <name>` | not implemented |
|
|
199
199
|
| `vault` | `vault kv get -field=<name> <path>` | not implemented |
|
|
200
200
|
|
|
201
|
+
**A provider cannot hold its own bootstrap.** With `provider: "aws"`, reading any
|
|
202
|
+
secret needs AWS credentials — so the AWS bootstrap bundle
|
|
203
|
+
(`LISA_AWS_BOOTSTRAP_JSON`, see `lisa-setup-remote-aws`) cannot live there:
|
|
204
|
+
resolving it would require the very credential it contains. Keep that one in a
|
|
205
|
+
different provider. The same applies to any provider whose own access key is a
|
|
206
|
+
secret you would otherwise store inside it.
|
|
207
|
+
|
|
201
208
|
Unimplemented providers fail with a message naming where to add them, rather than failing obscurely. Do not claim support that does not exist.
|
|
202
209
|
|
|
203
210
|
Cache **in-process only**. Never write a resolved value to disk except through the materialization contract above.
|
|
@@ -30,16 +30,41 @@ Install the vendor-neutral AWS bootstrap into the current repository.
|
|
|
30
30
|
`.github/workflows/copilot-setup-steps.yml`; and it always writes
|
|
31
31
|
`docs/remote-agent-aws.md`.
|
|
32
32
|
4. Run `bash -n scripts/remote-agent-aws-setup.sh`.
|
|
33
|
-
5. Never write or request the actual bootstrap
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
configure a different name. Pass that name with `--secret-name` so the
|
|
39
|
-
generated runbook contains the exact retrieval command.
|
|
33
|
+
5. Never write or request the actual bootstrap bundle in repository files. Tell
|
|
34
|
+
the operator where to obtain it and where to put it — see **Where the bundle
|
|
35
|
+
lives** below. Pass `--secret-name` when the source names it something other
|
|
36
|
+
than `remote-agent-credentials`, so the generated runbook contains the exact
|
|
37
|
+
retrieval command.
|
|
40
38
|
6. Report the external step that remains: configure that one secret in the
|
|
41
39
|
remote environment and launch a smoke session.
|
|
42
40
|
|
|
41
|
+
## Where the bundle lives
|
|
42
|
+
|
|
43
|
+
`LISA_AWS_BOOTSTRAP_JSON` is **just another secret**, and it belongs wherever
|
|
44
|
+
the project keeps its secrets — resolved through `lisa-secrets-access` like
|
|
45
|
+
everything else. It is not tied to any one store.
|
|
46
|
+
|
|
47
|
+
Whoever provisions the IAM user emits the bundle somewhere. `cdkstarter` writes
|
|
48
|
+
it to AWS Secrets Manager as `remote-agent-credentials`, but that is where it is
|
|
49
|
+
*emitted*, not where it must *live*. Copy it once into the project's configured
|
|
50
|
+
provider and read it from there.
|
|
51
|
+
|
|
52
|
+
**Do not keep it in two stores.** A bundle sitting in Secrets Manager *and* in
|
|
53
|
+
the platform's secret store is two live copies of one credential: rotate the
|
|
54
|
+
IAM key and whichever copy you forget keeps authenticating until it doesn't,
|
|
55
|
+
with nothing to say which is current. That is the drift the single-store rule in
|
|
56
|
+
`lisa-secrets-access` exists to prevent, and this credential is not exempt.
|
|
57
|
+
|
|
58
|
+
**One provider cannot serve this particular secret.** If `secrets.provider` is
|
|
59
|
+
`aws`, reading the bundle requires AWS credentials — and the bundle *is* the AWS
|
|
60
|
+
credential. Anything else works: Bitwarden, 1Password, Doppler, Vault, or a
|
|
61
|
+
platform secret store. Pick the one that is not the thing being bootstrapped.
|
|
62
|
+
|
|
63
|
+
On a surface that materializes (see `lisa-secrets-access`), the bundle arrives
|
|
64
|
+
in `secrets.env` with everything else, so the project hook can run this setup
|
|
65
|
+
script after materialization with no extra plumbing. On a surface that reads
|
|
66
|
+
through live, resolve it at the point of use.
|
|
67
|
+
|
|
43
68
|
## Contract
|
|
44
69
|
|
|
45
70
|
A future coding agent is supported without an AWS change when its remote
|