@datalayer/agent-runtimes 1.5.11 → 1.5.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/lib/specs/apps.js CHANGED
@@ -667,10 +667,10 @@ export const CROP_MONITORING_APP_0_0_1 = {
667
667
  banner: '',
668
668
  setup: ["The agent 'worker-crop-monitoring:0.0.1' is not enabled."],
669
669
  };
670
- export const CUSTOMER_INTERVIEW_APP_0_0_1 = {
670
+ export const CUSTOMER_INTERVIEW_APP_0_0_2 = {
671
671
  schema: 'loop.app/v1',
672
672
  id: 'customer-interview',
673
- version: '0.0.1',
673
+ version: '0.0.2',
674
674
  name: 'Customer Interview',
675
675
  kind: 'chat',
676
676
  description: 'Interviews a customer about what you want to learn, without leading questions, and turns the conversation into insights that each cite what was said.',
@@ -907,10 +907,10 @@ export const CUSTOMER_INTERVIEW_APP_0_0_1 = {
907
907
  banner: '',
908
908
  setup: [],
909
909
  };
910
- export const DATA_QUALITY_APP_0_0_1 = {
910
+ export const DATA_QUALITY_APP_0_0_2 = {
911
911
  schema: 'loop.app/v1',
912
912
  id: 'data-quality',
913
- version: '0.0.1',
913
+ version: '0.0.2',
914
914
  name: 'Data Quality Investigation',
915
915
  kind: 'decision',
916
916
  description: 'Which anomalies in this dataset should we fix first? For a data team, before a dataset is used for a decision.',
@@ -1484,13 +1484,13 @@ export const ERRAND_RUNNER_APP_0_0_1 = {
1484
1484
  },
1485
1485
  ],
1486
1486
  verified: {
1487
- live: [],
1487
+ live: [
1488
+ "Drilled as a pair on r1 on 13 October 2026, its clone and Guest Desk's joined as the Studio joins them, the business shipped at its own domain: asked as itself, the business named nobody; once the person signed in at the business by device code and granted profile:read, asked for them, it named the person by their Datalayer account, with a verified receipt.",
1489
+ ],
1488
1490
  recorded: [
1489
1491
  "The PACT journey is the developers' example (examples/protocols/pact/personal_agent.py) against its local Provider, run in its own tests.",
1490
1492
  ],
1491
- unverified: [
1492
- "Drilled as a pair on r1 on 13 October 2026: its clone asked Guest Desk's shipped clone as itself and, once the person signed in at the business by device code and granted profile:read, for them, the business's receipt verified; but the business was not told who had signed in (fixed in agent-runtimes, to release), so the answer for the person was not right yet.",
1493
- ],
1493
+ unverified: [],
1494
1494
  },
1495
1495
  },
1496
1496
  record: {
@@ -1519,8 +1519,8 @@ export const ERRAND_RUNNER_APP_0_0_1 = {
1519
1519
  documents: [],
1520
1520
  alternatives: [],
1521
1521
  },
1522
- enabled: false,
1523
- unavailable_because: 'It asks the business it is paired with: copy it with Guest Desk, its partner, and the Studio connects them; run live as a pair, the business was not yet told who signed in.',
1522
+ enabled: true,
1523
+ unavailable_because: '',
1524
1524
  tags: ['example', 'companies'],
1525
1525
  icon: 'apps',
1526
1526
  emoji: '🏃',
@@ -1528,10 +1528,10 @@ export const ERRAND_RUNNER_APP_0_0_1 = {
1528
1528
  banner: '',
1529
1529
  setup: [],
1530
1530
  };
1531
- export const EVENT_RESPONSE_APP_0_0_1 = {
1531
+ export const EVENT_RESPONSE_APP_0_0_2 = {
1532
1532
  schema: 'loop.app/v1',
1533
1533
  id: 'event-response',
1534
- version: '0.0.1',
1534
+ version: '0.0.2',
1535
1535
  name: 'Event response',
1536
1536
  kind: 'chat',
1537
1537
  description: 'Takes word of a live event — a flood, a fire, a storm — asks Disaster assessment for the area affected and the damage and Change detection for what changed on the ground, each over A2A, and reports what they answered, adding no figure of its own.',
@@ -1669,17 +1669,17 @@ export const EVENT_RESPONSE_APP_0_0_1 = {
1669
1669
  banner: '',
1670
1670
  setup: ["The agent 'worker-event-response:0.0.1' is not enabled."],
1671
1671
  };
1672
- export const EXCHANGE_DESK_APP_0_0_1 = {
1672
+ export const EXCHANGE_DESK_APP_0_0_2 = {
1673
1673
  schema: 'loop.app/v1',
1674
1674
  id: 'exchange-desk',
1675
- version: '0.0.1',
1675
+ version: '0.0.2',
1676
1676
  name: 'Exchange Desk',
1677
1677
  kind: 'chat',
1678
1678
  description: "Answers people's own agents about their orders and exchanges them, each exchange proposed with its exact terms and done once the person approves.",
1679
1679
  owner: 'Datalayer <info@datalayer.io>',
1680
1680
  agent: 'cog-crawler:0.0.1',
1681
1681
  team: '',
1682
- instructions: "You are a shop's desk for people's own agents. Answer what anybody may ask before they sign in; read an order only for its signed-in owner. When an exchange is asked for, give its terms: the shop proposes it, the person approves it, and exchange_order does it.",
1682
+ instructions: "You are the desk of the shop Manzanita Outfitters for people's own agents. Answer what anybody may ask before they sign in, and say nothing of an order you were not told. When a person signed in asks to exchange an order for another size, call exchange_order with that order and size at once: the call is shown to them with its exact terms and done only once they approve; the shop checks the order as it is done and says when it cannot be. Never exchange for somebody who has not signed in.",
1683
1683
  model: '',
1684
1684
  skills: [],
1685
1685
  backendTools: [],
@@ -1688,7 +1688,6 @@ export const EXCHANGE_DESK_APP_0_0_1 = {
1688
1688
  name: 'exchange_order',
1689
1689
  description: 'Exchanges an order for another size, once the person approved it.',
1690
1690
  parameters: {
1691
- type: 'object',
1692
1691
  properties: {
1693
1692
  order_id: {
1694
1693
  type: 'string',
@@ -1698,6 +1697,7 @@ export const EXCHANGE_DESK_APP_0_0_1 = {
1698
1697
  },
1699
1698
  },
1700
1699
  required: ['order_id', 'size'],
1700
+ type: 'object',
1701
1701
  },
1702
1702
  does: ['write'],
1703
1703
  },
@@ -1780,9 +1780,11 @@ export const EXCHANGE_DESK_APP_0_0_1 = {
1780
1780
  ],
1781
1781
  verified: {
1782
1782
  live: [],
1783
- recorded: [],
1783
+ recorded: [
1784
+ "Its exchange_order runs in process in Datalayer's own tests against a stand-in for Manzanita's back office: one exchange per confirmed operation, a retry answered as already done.",
1785
+ ],
1784
1786
  unverified: [
1785
- 'Drilled on r1 on 13 October 2026: shipped at its own domain, it answered a personal agent signed out, and a person signed in through Datalayer granted orders:read and orders:write; but the application was not told who had signed in (fixed in agent-runtimes, to release), and its exchange_order has no code, so no exchange was proposed or done.',
1787
+ 'Drilled on r1 on 13 October 2026, twice: shipped at its own domain, it answered a personal agent signed out, and a person signed in through Datalayer granted orders:read and orders:write. The second time it knew who had signed in, but asked to exchange, it looked for the order first and proposed nothing; it now proposes the exchange at once, and Manzanita checks the order when it is done. Not drilled since.',
1786
1788
  ],
1787
1789
  },
1788
1790
  },
@@ -1813,8 +1815,8 @@ export const EXCHANGE_DESK_APP_0_0_1 = {
1813
1815
  alternatives: [],
1814
1816
  },
1815
1817
  enabled: false,
1816
- unavailable_because: 'Its exchange_order has no code yet, so it cannot exchange an order for a person.',
1817
- tags: ['example', 'companies'],
1818
+ unavailable_because: 'Its exchange_order is written against the hosted Manzanita and has not been drilled live yet.',
1819
+ tags: ['example', 'companies', 'python'],
1818
1820
  icon: 'apps',
1819
1821
  emoji: 'đŸĒ',
1820
1822
  avatar: '',
@@ -1831,7 +1833,7 @@ export const GUEST_DESK_APP_0_0_1 = {
1831
1833
  owner: 'Datalayer <info@datalayer.io>',
1832
1834
  agent: 'cog-crawler:0.0.1',
1833
1835
  team: '',
1834
- instructions: "You answer for the business when a person's own agent asks. Say what the business offers to any agent. Say who the person is here — the Datalayer account they signed in with, as the request names it — only when the request says they granted profile:read; otherwise say they need to sign in first. Never more than the request carries.",
1836
+ instructions: "You answer for the business when a person's own agent asks. Say what the business offers to any agent. Say who the person is here — their handle and name, as the request names them — only when the request says they granted profile:read; otherwise say they need to sign in first. Never more than the request carries: no email, which the business is never told.",
1835
1837
  model: '',
1836
1838
  skills: [],
1837
1839
  backendTools: [],
@@ -1920,13 +1922,13 @@ export const GUEST_DESK_APP_0_0_1 = {
1920
1922
  },
1921
1923
  ],
1922
1924
  verified: {
1923
- live: [],
1925
+ live: [
1926
+ "Drilled as a pair on r1 on 13 October 2026: two clones joined as the Studio joins them, the business shipped at its own domain with the cloning account as its Brand; asked by Errand Runner's clone as itself, it named nobody; once the person signed in by device code and granted profile:read, it named them by their Datalayer account, with a verified receipt.",
1927
+ ],
1924
1928
  recorded: [
1925
1929
  'A shipped business at its own domain was drilled on r1 on 13 October 2026 (AGENT_PROTOCOLS PR-13): its card naming Datalayer the Provider, a registered personal agent answered alone and for a person who signed in by device code, a stranger refused.',
1926
1930
  ],
1927
- unverified: [
1928
- "Drilled as a pair on r1 on 13 October 2026: two clones joined as the Studio joins them, the business shipped at its own domain with the cloning account as its Brand, Errand Runner's clone answered alone and, once the person signed in by device code and granted profile:read, for them with a verified receipt; but the business was not told who had signed in (fixed in agent-runtimes, to release), so its answer for the person was not right yet.",
1929
- ],
1931
+ unverified: [],
1930
1932
  },
1931
1933
  },
1932
1934
  record: {
@@ -1955,8 +1957,8 @@ export const GUEST_DESK_APP_0_0_1 = {
1955
1957
  documents: [],
1956
1958
  alternatives: [],
1957
1959
  },
1958
- enabled: false,
1959
- unavailable_because: 'It answers the personal agents its Maker registers: copy it with Errand Runner, its partner, and the Studio registers it; run live as a pair, it was not yet told who signed in.',
1960
+ enabled: true,
1961
+ unavailable_because: '',
1960
1962
  tags: ['example', 'companies'],
1961
1963
  icon: 'apps',
1962
1964
  emoji: '🏨',
@@ -2325,10 +2327,10 @@ export const LIVE_SHOP_CHAT_APP_0_0_1 = {
2325
2327
  banner: '',
2326
2328
  setup: [],
2327
2329
  };
2328
- export const MODEL_CHOICE_APP_0_0_1 = {
2330
+ export const MODEL_CHOICE_APP_0_0_2 = {
2329
2331
  schema: 'loop.app/v1',
2330
2332
  id: 'model-choice',
2331
- version: '0.0.1',
2333
+ version: '0.0.2',
2332
2334
  name: 'Model Choice',
2333
2335
  kind: 'decision',
2334
2336
  description: 'Which chat model should this use case run on? For a team choosing a model for one job — a summarizer, a classifier, an agent — from what a benchmark run measured and what a decision model reads in the answers.',
@@ -3026,7 +3028,7 @@ export const ORDER_TRACKER_APP_0_0_1 = {
3026
3028
  ],
3027
3029
  verified: {
3028
3030
  live: [
3029
- "Drilled on r1 on 13 October 2026 against the hosted Manzanita (manzanita.examples.datalayer.run), as its Preview reaches the gateway's pap toolset: a question answered signed out, the person signed in by Device Sign-In with the code entered at its /device page, granting orders:read alone, and their latest order answered for them; the sign-in erased with the copy (Can read cannot disconnect).",
3031
+ "Drilled on r1 on 13 October 2026 against the hosted Manzanita (manzanita.examples.datalayer.run), as its Preview reaches the gateway's pap toolset: a question answered signed out, the person signed in by Device Sign-In with the code entered at its /device page, granting orders:read alone, and their latest order answered for them; the sign-in erased with the clone (Can read cannot disconnect).",
3030
3032
  ],
3031
3033
  recorded: [
3032
3034
  "The journey is the Personal Agent Protocol SDK's recorded journey of a sign-in kept for each person (Datalayer's protocol examples, personal-agent-protocol 0.16.0), shown as recorded data, not live.",
@@ -3368,10 +3370,10 @@ export const PIPELINE_REPORT_APP_0_0_1 = {
3368
3370
  banner: '',
3369
3371
  setup: ["The agent 'cog-sales-pipeline-board-report:0.0.1' is not enabled."],
3370
3372
  };
3371
- export const QUOTE_CALCULATOR_APP_0_0_1 = {
3373
+ export const QUOTE_CALCULATOR_APP_0_0_5 = {
3372
3374
  schema: 'loop.app/v1',
3373
3375
  id: 'quote-calculator',
3374
- version: '0.0.1',
3376
+ version: '0.0.5',
3375
3377
  name: 'Quote Calculator',
3376
3378
  kind: 'widget',
3377
3379
  description: 'Computes a quote from a number of seats, a plan and a term, and shows how the total is made.',
@@ -3641,10 +3643,10 @@ export const QUOTE_CALCULATOR_APP_0_0_1 = {
3641
3643
  banner: '',
3642
3644
  setup: [],
3643
3645
  };
3644
- export const REPORT_FROM_A_FILE_APP_0_0_1 = {
3646
+ export const REPORT_FROM_A_FILE_APP_0_0_4 = {
3645
3647
  schema: 'loop.app/v1',
3646
3648
  id: 'report-from-a-file',
3647
- version: '0.0.1',
3649
+ version: '0.0.4',
3648
3650
  name: 'Report from a File',
3649
3651
  kind: 'widget',
3650
3652
  description: 'Takes a CSV file, analyses it in the sandbox, and gives back a report: what the data holds, what stands out, and what is missing.',
@@ -3928,7 +3930,7 @@ export const RETURNS_DESK_APP_0_0_1 = {
3928
3930
  owner: 'Datalayer <info@datalayer.io>',
3929
3931
  agent: 'cog-crawler:0.0.1',
3930
3932
  team: '',
3931
- instructions: 'You arrange returns and repairs at Manzanita Outfitters for the person, through its tools. The shop proposes each one with its terms: show them, word for word, and never confirm on your own; the person approves it on Waiting for you.',
3933
+ instructions: 'You arrange returns and repairs at Manzanita Outfitters for the person. Ask the shop for a return or a repair through its API, with pap_propose; the shop proposes each one with its terms: show them, word for word, and never confirm on your own; the person approves it on Waiting for you.',
3932
3934
  model: '',
3933
3935
  skills: [],
3934
3936
  backendTools: [],
@@ -3947,7 +3949,7 @@ export const RETURNS_DESK_APP_0_0_1 = {
3947
3949
  access: 'write',
3948
3950
  as: 'user',
3949
3951
  scopes: ['orders:read', 'orders:write'],
3950
- interfaces: ['agent'],
3952
+ interfaces: ['agent', 'openapi'],
3951
3953
  signIn: ['direct', 'device'],
3952
3954
  extensions: ['operations'],
3953
3955
  },
@@ -4082,7 +4084,7 @@ export const RETURNS_DESK_APP_0_0_1 = {
4082
4084
  alternatives: [],
4083
4085
  },
4084
4086
  enabled: false,
4085
- unavailable_because: 'The test company Manzanita proposes returns and repairs only through its API, and this application asks it through its agent, so neither can be shown live yet.',
4087
+ unavailable_because: "It asks the test company Manzanita for returns and repairs through its API, which Datalayer's gateway does not reach yet, so neither can be shown live yet.",
4086
4088
  tags: ['example', 'companies'],
4087
4089
  icon: 'apps',
4088
4090
  emoji: 'â†Šī¸',
@@ -4090,10 +4092,10 @@ export const RETURNS_DESK_APP_0_0_1 = {
4090
4092
  banner: '',
4091
4093
  setup: [],
4092
4094
  };
4093
- export const SALES_APP_0_0_1 = {
4095
+ export const SALES_APP_0_0_2 = {
4094
4096
  schema: 'loop.app/v1',
4095
4097
  id: 'sales',
4096
- version: '0.0.1',
4098
+ version: '0.0.2',
4097
4099
  name: 'Sales',
4098
4100
  kind: 'chat',
4099
4101
  description: "Takes a request for a financial report, such as revenue for a period, open invoices or a customer's balance, asks the Accounting application for it over A2A and hands over what Accounting answered, without adding a figure of its own.",
@@ -4226,10 +4228,10 @@ export const SALES_APP_0_0_1 = {
4226
4228
  "The agent 'worker-sales-pipeline-board-report:0.0.1' is not enabled.",
4227
4229
  ],
4228
4230
  };
4229
- export const SHIP_OR_FIX_APP_0_0_1 = {
4231
+ export const SHIP_OR_FIX_APP_0_0_2 = {
4230
4232
  schema: 'loop.app/v1',
4231
4233
  id: 'ship-or-fix',
4232
- version: '0.0.1',
4234
+ version: '0.0.2',
4233
4235
  name: 'Ship or Fix',
4234
4236
  kind: 'decision',
4235
4237
  description: 'Which agent configuration should we ship, on the evidence of a benchmark run? For an AI platform team, after every run.',
@@ -4598,7 +4600,7 @@ export const SHOP_CONCIERGE_APP_0_0_1 = {
4598
4600
  alternatives: [],
4599
4601
  },
4600
4602
  enabled: false,
4601
- unavailable_because: "Nobody works at the test company Manzanita to take a conversation, so asking for one of the shop's people cannot be shown live yet.",
4603
+ unavailable_because: "The test company Manzanita's staff, who take a conversation handed to them, are not on duty at the hosted shop yet, so asking for one of its people cannot be shown live yet.",
4602
4604
  tags: ['example', 'companies'],
4603
4605
  icon: 'apps',
4604
4606
  emoji: 'đŸ›Žī¸',
@@ -5035,7 +5037,7 @@ export const SIGNED_READER_APP_0_0_1 = {
5035
5037
  "Drilled on r1 on 13 October 2026 against the hosted Example Verifier (verify.examples.datalayer.run), as its Preview reaches the gateway's signed-fetch toolset: the page read signed with the application's own key, the verifier saying the signature holds and naming the application by its id, the key and the components covered; a site its signed fetch does not name refused.",
5036
5038
  ],
5037
5039
  recorded: [
5038
- "Example Verifier's checks are the counterparts service's own tests (a request signed with agent-runtimes' sign_request verified, an unsigned or tampered one answered the page anyone gets).",
5040
+ "Example Verifier's checks are the counterparts service's own tests (a request signed with Datalayer's open-source signer verified, an unsigned or tampered one answered the page anyone gets).",
5039
5041
  ],
5040
5042
  unverified: [
5041
5043
  "A model's turns in the Studio's Preview were not watched in that drill.",
@@ -5077,10 +5079,10 @@ export const SIGNED_READER_APP_0_0_1 = {
5077
5079
  banner: '',
5078
5080
  setup: [],
5079
5081
  };
5080
- export const SUPPLIER_COMPARISON_APP_0_0_1 = {
5082
+ export const SUPPLIER_COMPARISON_APP_0_0_2 = {
5081
5083
  schema: 'loop.app/v1',
5082
5084
  id: 'supplier-comparison',
5083
- version: '0.0.1',
5085
+ version: '0.0.2',
5084
5086
  name: 'Supplier Comparison',
5085
5087
  kind: 'decision',
5086
5088
  description: 'Which supplier should we choose for these orders? For an operations or procurement lead, at each sourcing round.',
@@ -5282,10 +5284,10 @@ export const SUPPLIER_COMPARISON_APP_0_0_1 = {
5282
5284
  banner: '',
5283
5285
  setup: [],
5284
5286
  };
5285
- export const SUPPORT_DESK_APP_0_0_1 = {
5287
+ export const SUPPORT_DESK_APP_0_0_4 = {
5286
5288
  schema: 'loop.app/v1',
5287
5289
  id: 'support-desk',
5288
- version: '0.0.1',
5290
+ version: '0.0.4',
5289
5291
  name: 'Support Desk',
5290
5292
  kind: 'chat',
5291
5293
  description: 'Answers product questions from the documentation it was given, cites the passage, and says when the documentation does not hold the answer.',
@@ -5904,32 +5906,32 @@ export const APP_CATALOGUE = {
5904
5906
  'bookkeeping-desk': BOOKKEEPING_DESK_APP_0_0_1,
5905
5907
  'change-detection': CHANGE_DETECTION_APP_0_0_1,
5906
5908
  'crop-monitoring': CROP_MONITORING_APP_0_0_1,
5907
- 'customer-interview': CUSTOMER_INTERVIEW_APP_0_0_1,
5908
- 'data-quality': DATA_QUALITY_APP_0_0_1,
5909
+ 'customer-interview': CUSTOMER_INTERVIEW_APP_0_0_2,
5910
+ 'data-quality': DATA_QUALITY_APP_0_0_2,
5909
5911
  decide: DECIDE_APP_0_0_1,
5910
5912
  'disaster-assessment': DISASTER_ASSESSMENT_APP_0_0_1,
5911
5913
  'errand-runner': ERRAND_RUNNER_APP_0_0_1,
5912
- 'event-response': EVENT_RESPONSE_APP_0_0_1,
5913
- 'exchange-desk': EXCHANGE_DESK_APP_0_0_1,
5914
+ 'event-response': EVENT_RESPONSE_APP_0_0_2,
5915
+ 'exchange-desk': EXCHANGE_DESK_APP_0_0_2,
5914
5916
  'guest-desk': GUEST_DESK_APP_0_0_1,
5915
5917
  'inbox-triage': INBOX_TRIAGE_APP_0_0_1,
5916
5918
  'live-shop-chat': LIVE_SHOP_CHAT_APP_0_0_1,
5917
- 'model-choice': MODEL_CHOICE_APP_0_0_1,
5919
+ 'model-choice': MODEL_CHOICE_APP_0_0_2,
5918
5920
  'month-end-close': MONTH_END_CLOSE_APP_0_0_1,
5919
5921
  'order-desk': ORDER_DESK_APP_0_0_1,
5920
5922
  'order-tracker': ORDER_TRACKER_APP_0_0_1,
5921
5923
  'pipeline-report': PIPELINE_REPORT_APP_0_0_1,
5922
- 'quote-calculator': QUOTE_CALCULATOR_APP_0_0_1,
5923
- 'report-from-a-file': REPORT_FROM_A_FILE_APP_0_0_1,
5924
+ 'quote-calculator': QUOTE_CALCULATOR_APP_0_0_5,
5925
+ 'report-from-a-file': REPORT_FROM_A_FILE_APP_0_0_4,
5924
5926
  'returns-desk': RETURNS_DESK_APP_0_0_1,
5925
- sales: SALES_APP_0_0_1,
5926
- 'ship-or-fix': SHIP_OR_FIX_APP_0_0_1,
5927
+ sales: SALES_APP_0_0_2,
5928
+ 'ship-or-fix': SHIP_OR_FIX_APP_0_0_2,
5927
5929
  'shop-concierge': SHOP_CONCIERGE_APP_0_0_1,
5928
5930
  'shopping-desk': SHOPPING_DESK_APP_0_0_1,
5929
5931
  'sign-in-desk': SIGN_IN_DESK_APP_0_0_1,
5930
5932
  'signed-reader': SIGNED_READER_APP_0_0_1,
5931
- 'supplier-comparison': SUPPLIER_COMPARISON_APP_0_0_1,
5932
- 'support-desk': SUPPORT_DESK_APP_0_0_1,
5933
+ 'supplier-comparison': SUPPLIER_COMPARISON_APP_0_0_2,
5934
+ 'support-desk': SUPPORT_DESK_APP_0_0_4,
5933
5935
  'travel-desk': TRAVEL_DESK_APP_0_0_1,
5934
5936
  'web-research': WEB_RESEARCH_APP_0_0_1,
5935
5937
  };
@@ -6355,6 +6357,7 @@ export const APP_SOURCES = {
6355
6357
  'customer-interview': {
6356
6358
  schema: 'loop.app/v1',
6357
6359
  id: 'customer-interview',
6360
+ version: '0.0.2',
6358
6361
  name: 'Customer Interview',
6359
6362
  kind: 'chat',
6360
6363
  description: 'Interviews a customer about what you want to learn, without leading questions, and turns the conversation into insights that each cite what was said.',
@@ -6530,6 +6533,7 @@ export const APP_SOURCES = {
6530
6533
  'data-quality': {
6531
6534
  schema: 'loop.app/v1',
6532
6535
  id: 'data-quality',
6536
+ version: '0.0.2',
6533
6537
  name: 'Data Quality Investigation',
6534
6538
  kind: 'decision',
6535
6539
  description: 'Which anomalies in this dataset should we fix first? For a data team, before a dataset is used for a decision.',
@@ -6857,12 +6861,12 @@ export const APP_SOURCES = {
6857
6861
  },
6858
6862
  ],
6859
6863
  verified: {
6864
+ live: [
6865
+ "Drilled as a pair on r1 on 13 October 2026, its clone and Guest Desk's joined as the Studio joins them, the business shipped at its own domain: asked as itself, the business named nobody; once the person signed in at the business by device code and granted profile:read, asked for them, it named the person by their Datalayer account, with a verified receipt.",
6866
+ ],
6860
6867
  recorded: [
6861
6868
  "The PACT journey is the developers' example (examples/protocols/pact/personal_agent.py) against its local Provider, run in its own tests.",
6862
6869
  ],
6863
- unverified: [
6864
- "Drilled as a pair on r1 on 13 October 2026: its clone asked Guest Desk's shipped clone as itself and, once the person signed in at the business by device code and granted profile:read, for them, the business's receipt verified; but the business was not told who had signed in (fixed in agent-runtimes, to release), so the answer for the person was not right yet.",
6865
- ],
6866
6870
  },
6867
6871
  },
6868
6872
  record: {
@@ -6872,14 +6876,13 @@ export const APP_SOURCES = {
6872
6876
  deployment: {
6873
6877
  hosted: {},
6874
6878
  },
6875
- enabled: false,
6876
- unavailable_because: 'It asks the business it is paired with: copy it with Guest Desk, its partner, and the Studio connects them; run live as a pair, the business was not yet told who signed in.',
6877
6879
  tags: ['example', 'companies'],
6878
6880
  emoji: '🏃',
6879
6881
  },
6880
6882
  'event-response': {
6881
6883
  schema: 'loop.app/v1',
6882
6884
  id: 'event-response',
6885
+ version: '0.0.2',
6883
6886
  name: 'Event response',
6884
6887
  kind: 'chat',
6885
6888
  description: 'Takes word of a live event — a flood, a fire, a storm — asks Disaster assessment for the area affected and the damage and Change detection for what changed on the ground, each over A2A, and reports what they answered, adding no figure of its own.',
@@ -6956,18 +6959,18 @@ export const APP_SOURCES = {
6956
6959
  'exchange-desk': {
6957
6960
  schema: 'loop.app/v1',
6958
6961
  id: 'exchange-desk',
6962
+ version: '0.0.2',
6959
6963
  name: 'Exchange Desk',
6960
6964
  kind: 'chat',
6961
6965
  description: "Answers people's own agents about their orders and exchanges them, each exchange proposed with its exact terms and done once the person approves.",
6962
6966
  owner: 'Datalayer <info@datalayer.io>',
6963
6967
  agent: 'cog-crawler:0.0.1',
6964
- instructions: "You are a shop's desk for people's own agents. Answer what anybody may ask before they sign in; read an order only for its signed-in owner. When an exchange is asked for, give its terms: the shop proposes it, the person approves it, and exchange_order does it.",
6968
+ instructions: "You are the desk of the shop Manzanita Outfitters for people's own agents. Answer what anybody may ask before they sign in, and say nothing of an order you were not told. When a person signed in asks to exchange an order for another size, call exchange_order with that order and size at once: the call is shown to them with its exact terms and done only once they approve; the shop checks the order as it is done and says when it cannot be. Never exchange for somebody who has not signed in.",
6965
6969
  tools: [
6966
6970
  {
6967
6971
  name: 'exchange_order',
6968
6972
  description: 'Exchanges an order for another size, once the person approved it.',
6969
6973
  parameters: {
6970
- type: 'object',
6971
6974
  properties: {
6972
6975
  order_id: {
6973
6976
  type: 'string',
@@ -6977,6 +6980,7 @@ export const APP_SOURCES = {
6977
6980
  },
6978
6981
  },
6979
6982
  required: ['order_id', 'size'],
6983
+ type: 'object',
6980
6984
  },
6981
6985
  does: ['write'],
6982
6986
  },
@@ -7021,8 +7025,11 @@ export const APP_SOURCES = {
7021
7025
  },
7022
7026
  ],
7023
7027
  verified: {
7028
+ recorded: [
7029
+ "Its exchange_order runs in process in Datalayer's own tests against a stand-in for Manzanita's back office: one exchange per confirmed operation, a retry answered as already done.",
7030
+ ],
7024
7031
  unverified: [
7025
- 'Drilled on r1 on 13 October 2026: shipped at its own domain, it answered a personal agent signed out, and a person signed in through Datalayer granted orders:read and orders:write; but the application was not told who had signed in (fixed in agent-runtimes, to release), and its exchange_order has no code, so no exchange was proposed or done.',
7032
+ 'Drilled on r1 on 13 October 2026, twice: shipped at its own domain, it answered a personal agent signed out, and a person signed in through Datalayer granted orders:read and orders:write. The second time it knew who had signed in, but asked to exchange, it looked for the order first and proposed nothing; it now proposes the exchange at once, and Manzanita checks the order when it is done. Not drilled since.',
7026
7033
  ],
7027
7034
  },
7028
7035
  },
@@ -7034,8 +7041,8 @@ export const APP_SOURCES = {
7034
7041
  hosted: {},
7035
7042
  },
7036
7043
  enabled: false,
7037
- unavailable_because: 'Its exchange_order has no code yet, so it cannot exchange an order for a person.',
7038
- tags: ['example', 'companies'],
7044
+ unavailable_because: 'Its exchange_order is written against the hosted Manzanita and has not been drilled live yet.',
7045
+ tags: ['example', 'companies', 'python'],
7039
7046
  emoji: 'đŸĒ',
7040
7047
  },
7041
7048
  'guest-desk': {
@@ -7046,7 +7053,7 @@ export const APP_SOURCES = {
7046
7053
  description: "Answers people's own agents for your business, over PACT: what you offer to anyone who asks, and who they are here once they let their agent ask for them.",
7047
7054
  owner: 'Datalayer <info@datalayer.io>',
7048
7055
  agent: 'cog-crawler:0.0.1',
7049
- instructions: "You answer for the business when a person's own agent asks. Say what the business offers to any agent. Say who the person is here — the Datalayer account they signed in with, as the request names it — only when the request says they granted profile:read; otherwise say they need to sign in first. Never more than the request carries.",
7056
+ instructions: "You answer for the business when a person's own agent asks. Say what the business offers to any agent. Say who the person is here — their handle and name, as the request names them — only when the request says they granted profile:read; otherwise say they need to sign in first. Never more than the request carries: no email, which the business is never told.",
7050
7057
  protocols: ['pact'],
7051
7058
  pact: {
7052
7059
  business: {
@@ -7096,12 +7103,12 @@ export const APP_SOURCES = {
7096
7103
  },
7097
7104
  ],
7098
7105
  verified: {
7106
+ live: [
7107
+ "Drilled as a pair on r1 on 13 October 2026: two clones joined as the Studio joins them, the business shipped at its own domain with the cloning account as its Brand; asked by Errand Runner's clone as itself, it named nobody; once the person signed in by device code and granted profile:read, it named them by their Datalayer account, with a verified receipt.",
7108
+ ],
7099
7109
  recorded: [
7100
7110
  'A shipped business at its own domain was drilled on r1 on 13 October 2026 (AGENT_PROTOCOLS PR-13): its card naming Datalayer the Provider, a registered personal agent answered alone and for a person who signed in by device code, a stranger refused.',
7101
7111
  ],
7102
- unverified: [
7103
- "Drilled as a pair on r1 on 13 October 2026: two clones joined as the Studio joins them, the business shipped at its own domain with the cloning account as its Brand, Errand Runner's clone answered alone and, once the person signed in by device code and granted profile:read, for them with a verified receipt; but the business was not told who had signed in (fixed in agent-runtimes, to release), so its answer for the person was not right yet.",
7104
- ],
7105
7112
  },
7106
7113
  },
7107
7114
  record: {
@@ -7111,8 +7118,6 @@ export const APP_SOURCES = {
7111
7118
  deployment: {
7112
7119
  hosted: {},
7113
7120
  },
7114
- enabled: false,
7115
- unavailable_because: 'It answers the personal agents its Maker registers: copy it with Errand Runner, its partner, and the Studio registers it; run live as a pair, it was not yet told who signed in.',
7116
7121
  tags: ['example', 'companies'],
7117
7122
  emoji: '🏨',
7118
7123
  },
@@ -7344,6 +7349,7 @@ export const APP_SOURCES = {
7344
7349
  'model-choice': {
7345
7350
  schema: 'loop.app/v1',
7346
7351
  id: 'model-choice',
7352
+ version: '0.0.2',
7347
7353
  name: 'Model Choice',
7348
7354
  kind: 'decision',
7349
7355
  description: 'Which chat model should this use case run on? For a team choosing a model for one job — a summarizer, a classifier, an agent — from what a benchmark run measured and what a decision model reads in the answers.',
@@ -7769,7 +7775,7 @@ export const APP_SOURCES = {
7769
7775
  ],
7770
7776
  verified: {
7771
7777
  live: [
7772
- "Drilled on r1 on 13 October 2026 against the hosted Manzanita (manzanita.examples.datalayer.run), as its Preview reaches the gateway's pap toolset: a question answered signed out, the person signed in by Device Sign-In with the code entered at its /device page, granting orders:read alone, and their latest order answered for them; the sign-in erased with the copy (Can read cannot disconnect).",
7778
+ "Drilled on r1 on 13 October 2026 against the hosted Manzanita (manzanita.examples.datalayer.run), as its Preview reaches the gateway's pap toolset: a question answered signed out, the person signed in by Device Sign-In with the code entered at its /device page, granting orders:read alone, and their latest order answered for them; the sign-in erased with the clone (Can read cannot disconnect).",
7773
7779
  ],
7774
7780
  recorded: [
7775
7781
  "The journey is the Personal Agent Protocol SDK's recorded journey of a sign-in kept for each person (Datalayer's protocol examples, personal-agent-protocol 0.16.0), shown as recorded data, not live.",
@@ -8035,6 +8041,7 @@ export const APP_SOURCES = {
8035
8041
  'quote-calculator': {
8036
8042
  schema: 'loop.app/v1',
8037
8043
  id: 'quote-calculator',
8044
+ version: '0.0.5',
8038
8045
  name: 'Quote Calculator',
8039
8046
  kind: 'widget',
8040
8047
  description: 'Computes a quote from a number of seats, a plan and a term, and shows how the total is made.',
@@ -8243,6 +8250,7 @@ export const APP_SOURCES = {
8243
8250
  'report-from-a-file': {
8244
8251
  schema: 'loop.app/v1',
8245
8252
  id: 'report-from-a-file',
8253
+ version: '0.0.4',
8246
8254
  name: 'Report from a File',
8247
8255
  kind: 'widget',
8248
8256
  description: 'Takes a CSV file, analyses it in the sandbox, and gives back a report: what the data holds, what stands out, and what is missing.',
@@ -8456,7 +8464,7 @@ export const APP_SOURCES = {
8456
8464
  description: 'Arranges returns and repairs at a shop for you, each one done exactly as you approved it, and only once.',
8457
8465
  owner: 'Datalayer <info@datalayer.io>',
8458
8466
  agent: 'cog-crawler:0.0.1',
8459
- instructions: 'You arrange returns and repairs at Manzanita Outfitters for the person, through its tools. The shop proposes each one with its terms: show them, word for word, and never confirm on your own; the person approves it on Waiting for you.',
8467
+ instructions: 'You arrange returns and repairs at Manzanita Outfitters for the person. Ask the shop for a return or a repair through its API, with pap_propose; the shop proposes each one with its terms: show them, word for word, and never confirm on your own; the person approves it on Waiting for you.',
8460
8468
  protocols: ['pap'],
8461
8469
  pap: {
8462
8470
  profile: 'draft-01',
@@ -8466,6 +8474,7 @@ export const APP_SOURCES = {
8466
8474
  company: 'manzanita.examples.datalayer.run',
8467
8475
  access: 'write',
8468
8476
  scopes: ['orders:read', 'orders:write'],
8477
+ interfaces: ['agent', 'openapi'],
8469
8478
  extensions: ['operations'],
8470
8479
  },
8471
8480
  ],
@@ -8542,13 +8551,14 @@ export const APP_SOURCES = {
8542
8551
  hosted: {},
8543
8552
  },
8544
8553
  enabled: false,
8545
- unavailable_because: 'The test company Manzanita proposes returns and repairs only through its API, and this application asks it through its agent, so neither can be shown live yet.',
8554
+ unavailable_because: "It asks the test company Manzanita for returns and repairs through its API, which Datalayer's gateway does not reach yet, so neither can be shown live yet.",
8546
8555
  tags: ['example', 'companies'],
8547
8556
  emoji: 'â†Šī¸',
8548
8557
  },
8549
8558
  sales: {
8550
8559
  schema: 'loop.app/v1',
8551
8560
  id: 'sales',
8561
+ version: '0.0.2',
8552
8562
  name: 'Sales',
8553
8563
  kind: 'chat',
8554
8564
  description: "Takes a request for a financial report, such as revenue for a period, open invoices or a customer's balance, asks the Accounting application for it over A2A and hands over what Accounting answered, without adding a figure of its own.",
@@ -8618,6 +8628,7 @@ export const APP_SOURCES = {
8618
8628
  'ship-or-fix': {
8619
8629
  schema: 'loop.app/v1',
8620
8630
  id: 'ship-or-fix',
8631
+ version: '0.0.2',
8621
8632
  name: 'Ship or Fix',
8622
8633
  kind: 'decision',
8623
8634
  description: 'Which agent configuration should we ship, on the evidence of a benchmark run? For an AI platform team, after every run.',
@@ -8837,7 +8848,7 @@ export const APP_SOURCES = {
8837
8848
  hosted: {},
8838
8849
  },
8839
8850
  enabled: false,
8840
- unavailable_because: "Nobody works at the test company Manzanita to take a conversation, so asking for one of the shop's people cannot be shown live yet.",
8851
+ unavailable_because: "The test company Manzanita's staff, who take a conversation handed to them, are not on duty at the hosted shop yet, so asking for one of its people cannot be shown live yet.",
8841
8852
  tags: ['example', 'companies'],
8842
8853
  emoji: 'đŸ›Žī¸',
8843
8854
  },
@@ -9095,7 +9106,7 @@ export const APP_SOURCES = {
9095
9106
  "Drilled on r1 on 13 October 2026 against the hosted Example Verifier (verify.examples.datalayer.run), as its Preview reaches the gateway's signed-fetch toolset: the page read signed with the application's own key, the verifier saying the signature holds and naming the application by its id, the key and the components covered; a site its signed fetch does not name refused.",
9096
9107
  ],
9097
9108
  recorded: [
9098
- "Example Verifier's checks are the counterparts service's own tests (a request signed with agent-runtimes' sign_request verified, an unsigned or tampered one answered the page anyone gets).",
9109
+ "Example Verifier's checks are the counterparts service's own tests (a request signed with Datalayer's open-source signer verified, an unsigned or tampered one answered the page anyone gets).",
9099
9110
  ],
9100
9111
  unverified: [
9101
9112
  "A model's turns in the Studio's Preview were not watched in that drill.",
@@ -9115,6 +9126,7 @@ export const APP_SOURCES = {
9115
9126
  'supplier-comparison': {
9116
9127
  schema: 'loop.app/v1',
9117
9128
  id: 'supplier-comparison',
9129
+ version: '0.0.2',
9118
9130
  name: 'Supplier Comparison',
9119
9131
  kind: 'decision',
9120
9132
  description: 'Which supplier should we choose for these orders? For an operations or procurement lead, at each sourcing round.',
@@ -9238,6 +9250,7 @@ export const APP_SOURCES = {
9238
9250
  'support-desk': {
9239
9251
  schema: 'loop.app/v1',
9240
9252
  id: 'support-desk',
9253
+ version: '0.0.4',
9241
9254
  name: 'Support Desk',
9242
9255
  kind: 'chat',
9243
9256
  description: 'Answers product questions from the documentation it was given, cites the passage, and says when the documentation does not hold the answer.',
@@ -9666,7 +9679,7 @@ export const APP_BUILT = {
9666
9679
  'disaster-assessment': 'written',
9667
9680
  'errand-runner': 'written',
9668
9681
  'event-response': 'written',
9669
- 'exchange-desk': 'written',
9682
+ 'exchange-desk': 'python',
9670
9683
  'guest-desk': 'written',
9671
9684
  'inbox-triage': 'written',
9672
9685
  'live-shop-chat': 'written',
@@ -330,7 +330,7 @@ export const DISASTER_ASSESSMENT_SCENE_0_0_1 = {
330
330
  cast: [
331
331
  {
332
332
  member: 'event-response',
333
- app: 'event-response:0.0.1',
333
+ app: 'event-response:0.0.2',
334
334
  ref: '',
335
335
  server: '',
336
336
  role: 'initiator',
@@ -1912,7 +1912,7 @@ export const SALES_AND_ACCOUNTING_SCENE_0_0_1 = {
1912
1912
  cast: [
1913
1913
  {
1914
1914
  member: 'sales',
1915
- app: 'sales:0.0.1',
1915
+ app: 'sales:0.0.2',
1916
1916
  ref: '',
1917
1917
  server: '',
1918
1918
  role: 'initiator',