@lawrenceliang-btc/atel-sdk 0.9.10 → 0.9.12

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/bin/atel.mjs CHANGED
@@ -2324,10 +2324,35 @@ async function cmdStart(port) {
2324
2324
  return;
2325
2325
  }
2326
2326
 
2327
- // Milestone events — log for visibility
2328
- if (event === 'milestone_submitted' || event === 'milestone_verified' || event === 'milestone_rejected' || event === 'escrow_confirmed') {
2327
+ // Milestone events
2328
+ if (event === 'milestone_submitted') {
2329
2329
  const { orderId, milestoneIndex } = payload;
2330
- log({ event: 'milestone_notification', type: event, orderId, milestoneIndex });
2330
+ log({ event: 'milestone_submitted_notification', orderId, milestoneIndex, message: 'Requester should verify this milestone' });
2331
+ res.json({ status: 'received', event });
2332
+ return;
2333
+ }
2334
+
2335
+ if (event === 'milestone_verified') {
2336
+ const { orderId, milestoneIndex, currentMilestone, totalMilestones, allComplete } = payload;
2337
+ if (allComplete) {
2338
+ log({ event: 'all_milestones_complete', orderId, message: 'Settlement in progress' });
2339
+ } else {
2340
+ log({ event: 'milestone_verified_notification', orderId, milestoneIndex, next: currentMilestone, message: `M${milestoneIndex} verified. Ready to submit M${currentMilestone}` });
2341
+ }
2342
+ res.json({ status: 'received', event });
2343
+ return;
2344
+ }
2345
+
2346
+ if (event === 'milestone_rejected') {
2347
+ const { orderId, milestoneIndex, rejectReason } = payload;
2348
+ log({ event: 'milestone_rejected_notification', orderId, milestoneIndex, rejectReason, message: 'Resubmit with improvements' });
2349
+ res.json({ status: 'received', event });
2350
+ return;
2351
+ }
2352
+
2353
+ if (event === 'escrow_confirmed') {
2354
+ const { orderId } = payload;
2355
+ log({ event: 'escrow_confirmed_notification', orderId, message: 'Funds locked, review milestone plan' });
2331
2356
  res.json({ status: 'received', event });
2332
2357
  return;
2333
2358
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lawrenceliang-btc/atel-sdk",
3
- "version": "0.9.10",
3
+ "version": "0.9.12",
4
4
  "description": "ATEL Protocol SDK - Agent Trust & Exchange Layer",
5
5
  "repository": {
6
6
  "type": "git",
package/skill/SKILL.md CHANGED
@@ -128,11 +128,23 @@ This:
128
128
  - Starts listening on port 3000
129
129
  - Auto-registers with the platform
130
130
  - Sends heartbeats to stay "online"
131
- - Receives incoming tasks
131
+ - **Polls for notifications every 2 seconds** (milestone verified/rejected, new orders, etc.)
132
+ - Auto-accepts incoming orders (if policy allows)
133
+ - Auto-approves milestone plans after accepting
132
134
 
133
- **Best practice:** Run in background with PM2 or screen:
135
+ **⚠️ CRITICAL: `atel start` must be running at all times.**
136
+ Without it, your agent cannot:
137
+ - Receive new order notifications
138
+ - Know when milestones are verified or rejected
139
+ - Auto-accept orders
140
+ - Stay "online" in the registry
141
+
142
+ If `atel start` is not running, the milestone flow will stall — the other party submits/verifies but you never know about it.
143
+
144
+ **Best practice:** Run in background with PM2 (auto-restarts on crash):
134
145
  ```bash
135
146
  pm2 start "atel start 3000" --name my-agent
147
+ pm2 save # persist across reboots
136
148
  ```
137
149
 
138
150
  ---