create-ironclaws 1.0.3 → 1.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-ironclaws",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Create an IronClaws AI agent platform in seconds",
5
5
  "type": "module",
6
6
  "bin": {
@@ -647,6 +647,7 @@ function autoRegisterAgentsFromYaml(): void {
647
647
  is_main?: boolean;
648
648
  onecli_secrets?: string[];
649
649
  onecli_id?: string;
650
+ container_config?: import('./types.js').ContainerConfig;
650
651
  }>;
651
652
 
652
653
  try {
@@ -676,6 +677,7 @@ function autoRegisterAgentsFromYaml(): void {
676
677
  added_at: new Date().toISOString(),
677
678
  requiresTrigger: def.requires_trigger !== false,
678
679
  isMain: def.is_main === true,
680
+ ...(def.container_config ? { containerConfig: def.container_config } : {}),
679
681
  };
680
682
 
681
683
  setRegisteredGroup(jid, group);
@@ -714,13 +716,32 @@ function ensureOneCLISecrets(): void {
714
716
  const secretsScript = path.join(process.cwd(), 'scripts', 'setup-onecli-secrets.sh');
715
717
  if (!fs.existsSync(secretsScript)) return;
716
718
 
717
- // Hash the credential-bearing env vars that the secrets script uses
719
+ // Hash two things:
720
+ // 1. Credential-bearing env vars (re-run when secrets rotate)
721
+ // 2. onecli_secrets from agents.yaml (re-run when an agent's secret list changes)
718
722
  const credentialKeys = [
719
723
  'ELASTIC_API_KEY', 'JIRA_EMAIL', 'JIRA_API_TOKEN',
720
724
  'SLACK_BOT_TOKEN', 'INTERCOM_ACCESS_TOKEN', 'ARDOQ_API_KEY',
721
725
  'ANTHROPIC_AUTH_TOKEN', 'CONFLUENCE_USERNAME', 'CONFLUENCE_PASSWORD',
726
+ 'XLEDGER_API_TOKEN',
722
727
  ];
723
- const hashInput = credentialKeys.map(k => `${k}=${process.env[k] || ''}`).join('\n');
728
+ const envHash = credentialKeys.map(k => `${k}=${process.env[k] || ''}`).join('\n');
729
+
730
+ // Include agents.yaml onecli_secrets so adding/removing a secret triggers re-run
731
+ let agentsSecretsSig = '';
732
+ try {
733
+ const agentsYaml = path.join(process.cwd(), 'agents.yaml');
734
+ if (fs.existsSync(agentsYaml)) {
735
+ const defs = YAML.parse(fs.readFileSync(agentsYaml, 'utf-8')).agents || [];
736
+ agentsSecretsSig = defs
737
+ .map((d: { folder: string; onecli_secrets?: string[] }) =>
738
+ `${d.folder}:${(d.onecli_secrets || []).sort().join(',')}`)
739
+ .sort()
740
+ .join('\n');
741
+ }
742
+ } catch { /* non-fatal — env hash alone is still useful */ }
743
+
744
+ const hashInput = envHash + '\n---agents---\n' + agentsSecretsSig;
724
745
  const currentHash = crypto.createHash('sha256').update(hashInput).digest('hex');
725
746
 
726
747
  const hashFile = path.join(STORE_DIR, 'onecli-secrets.hash');