aboutsummaryrefslogtreecommitdiff
path: root/modules/core/module-leases.js
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-06-17 06:01:20 +0200
committerAgando <roduccomm@gmail.com>2026-06-17 06:01:20 +0200
commitcebacc27a48168e666679018f8e27156d12d4527 (patch)
treeb306d33b67b9d8c84bd9b9c16b1e91ee217628a6 /modules/core/module-leases.js
parent6aa24b976952a698c673d350977721b27193183d (diff)
auto: 2026-06-17_06:01 changes
Diffstat (limited to 'modules/core/module-leases.js')
-rw-r--r--modules/core/module-leases.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/core/module-leases.js b/modules/core/module-leases.js
index b79870c..7489c92 100644
--- a/modules/core/module-leases.js
+++ b/modules/core/module-leases.js
@@ -55,6 +55,19 @@ class LeaseModule {
};
this._leases[lease.id] = lease;
this.terminal.fs.writeFile(`leases/${lease.id}.json`, JSON.stringify(lease));
+ // Post A2A message to lease system agent
+ try {
+ const registry = this.terminal.moduleManager.modules['AgentRegistryModule'];
+ if (registry && typeof registry.a2aPost === 'function') {
+ registry.a2aPost('orchestrator-0', 'lease-system', 'lease.create', 'leases.create', {
+ leaseId: lease.id,
+ workerId,
+ task,
+ duration,
+ expiresAt: lease.expiresAt
+ });
+ }
+ } catch (e) {}
this.terminal.print(`📜 Lease ${lease.id} created for ${workerId} (${duration}s, task: ${task.substring(0, 40)})`, 'success');
return lease;
}
@@ -74,6 +87,18 @@ class LeaseModule {
this._leases[id].status = 'revoked';
this._leases[id].revokedAt = new Date().toISOString();
this.terminal.fs.writeFile(`leases/${id}.json`, JSON.stringify(this._leases[id]));
+ // Post A2A completion message
+ try {
+ const registry = this.terminal.moduleManager.modules['AgentRegistryModule'];
+ if (registry && typeof registry.a2aPost === 'function') {
+ registry.a2aPost('orchestrator-0', 'lease-system', 'lease.terminate', 'leases.terminate', {
+ leaseId: id,
+ status: 'revoked',
+ revokedAt: this._leases[id].revokedAt,
+ workerId: this._leases[id].workerId
+ });
+ }
+ } catch (e) {}
this.terminal.print(`✅ Lease ${id} revoked`, 'warning');
}
renewLease(id, additionalSeconds) {