aismemory 0.7.4 → 0.8.0

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.
Files changed (101) hide show
  1. package/README.md +211 -11
  2. package/dist/__tests__/agent-archive.test.d.ts +1 -0
  3. package/dist/__tests__/agent-archive.test.js +153 -0
  4. package/dist/__tests__/agent-archive.test.js.map +1 -0
  5. package/dist/__tests__/agent-key-mode.test.js +88 -7
  6. package/dist/__tests__/agent-key-mode.test.js.map +1 -1
  7. package/dist/__tests__/ais-http.test.js +32 -0
  8. package/dist/__tests__/ais-http.test.js.map +1 -1
  9. package/dist/__tests__/credential-isolation.test.js +117 -3
  10. package/dist/__tests__/credential-isolation.test.js.map +1 -1
  11. package/dist/__tests__/credential-resolution.test.js +5 -5
  12. package/dist/__tests__/credential-resolution.test.js.map +1 -1
  13. package/dist/__tests__/device-flow-gate-e2e.test.js +5 -0
  14. package/dist/__tests__/device-flow-gate-e2e.test.js.map +1 -1
  15. package/dist/__tests__/doctor.test.js +144 -79
  16. package/dist/__tests__/doctor.test.js.map +1 -1
  17. package/dist/__tests__/mcp-tools.test.d.ts +1 -0
  18. package/dist/__tests__/mcp-tools.test.js +189 -0
  19. package/dist/__tests__/mcp-tools.test.js.map +1 -0
  20. package/dist/__tests__/memory-pull.test.d.ts +1 -0
  21. package/dist/__tests__/memory-pull.test.js +380 -0
  22. package/dist/__tests__/memory-pull.test.js.map +1 -0
  23. package/dist/__tests__/memory-write-failure.test.js +4 -8
  24. package/dist/__tests__/memory-write-failure.test.js.map +1 -1
  25. package/dist/__tests__/no-registered-keys-disk-bearer-fallback.test.js +4 -7
  26. package/dist/__tests__/no-registered-keys-disk-bearer-fallback.test.js.map +1 -1
  27. package/dist/__tests__/pending-device-flow-e2e.test.d.ts +19 -0
  28. package/dist/__tests__/pending-device-flow-e2e.test.js +159 -0
  29. package/dist/__tests__/pending-device-flow-e2e.test.js.map +1 -0
  30. package/dist/__tests__/pending-device-flow.test.d.ts +15 -0
  31. package/dist/__tests__/pending-device-flow.test.js +108 -0
  32. package/dist/__tests__/pending-device-flow.test.js.map +1 -0
  33. package/dist/__tests__/provisional-register-mcp-remember.test.js +4 -8
  34. package/dist/__tests__/provisional-register-mcp-remember.test.js.map +1 -1
  35. package/dist/__tests__/readme-quickstart-default-ais-url.test.d.ts +1 -0
  36. package/dist/__tests__/readme-quickstart-default-ais-url.test.js +80 -0
  37. package/dist/__tests__/readme-quickstart-default-ais-url.test.js.map +1 -0
  38. package/dist/__tests__/reconnect-survival-e2e.test.js +3 -4
  39. package/dist/__tests__/reconnect-survival-e2e.test.js.map +1 -1
  40. package/dist/__tests__/remember-duplicate-truth.test.d.ts +13 -0
  41. package/dist/__tests__/remember-duplicate-truth.test.js +106 -0
  42. package/dist/__tests__/remember-duplicate-truth.test.js.map +1 -0
  43. package/dist/__tests__/retry-after.test.d.ts +4 -0
  44. package/dist/__tests__/retry-after.test.js +128 -0
  45. package/dist/__tests__/retry-after.test.js.map +1 -0
  46. package/dist/__tests__/startup-credential-warning-e2e.test.d.ts +1 -0
  47. package/dist/__tests__/startup-credential-warning-e2e.test.js +102 -0
  48. package/dist/__tests__/startup-credential-warning-e2e.test.js.map +1 -0
  49. package/dist/__tests__/tool-args.test.js +10 -0
  50. package/dist/__tests__/tool-args.test.js.map +1 -1
  51. package/dist/__tests__/version-check.test.d.ts +1 -0
  52. package/dist/__tests__/version-check.test.js +349 -0
  53. package/dist/__tests__/version-check.test.js.map +1 -0
  54. package/dist/agent-archive.d.ts +36 -0
  55. package/dist/agent-archive.js +69 -0
  56. package/dist/agent-archive.js.map +1 -0
  57. package/dist/agent-key-mode.d.ts +1 -1
  58. package/dist/agent-key-mode.js +56 -19
  59. package/dist/agent-key-mode.js.map +1 -1
  60. package/dist/ais-http-error.d.ts +26 -2
  61. package/dist/ais-http-error.js +52 -4
  62. package/dist/ais-http-error.js.map +1 -1
  63. package/dist/ais-http.js +46 -16
  64. package/dist/ais-http.js.map +1 -1
  65. package/dist/cli/doctor.d.ts +17 -2
  66. package/dist/cli/doctor.js +93 -14
  67. package/dist/cli/doctor.js.map +1 -1
  68. package/dist/cli/pull-memory.d.ts +17 -0
  69. package/dist/cli/pull-memory.js +141 -0
  70. package/dist/cli/pull-memory.js.map +1 -0
  71. package/dist/index.js +135 -398
  72. package/dist/index.js.map +1 -1
  73. package/dist/mcp/tools.d.ts +82 -0
  74. package/dist/mcp/tools.js +453 -0
  75. package/dist/mcp/tools.js.map +1 -0
  76. package/dist/memory-pull.d.ts +114 -0
  77. package/dist/memory-pull.js +171 -0
  78. package/dist/memory-pull.js.map +1 -0
  79. package/dist/pending-device-flow.d.ts +49 -0
  80. package/dist/pending-device-flow.js +96 -0
  81. package/dist/pending-device-flow.js.map +1 -0
  82. package/dist/retry-after.d.ts +26 -0
  83. package/dist/retry-after.js +42 -0
  84. package/dist/retry-after.js.map +1 -0
  85. package/dist/session-identity.d.ts +26 -0
  86. package/dist/session-identity.js +89 -0
  87. package/dist/session-identity.js.map +1 -0
  88. package/dist/telemetry.d.ts +1 -1
  89. package/dist/telemetry.js.map +1 -1
  90. package/dist/tool-args.d.ts +4 -0
  91. package/dist/tool-args.js +16 -0
  92. package/dist/tool-args.js.map +1 -1
  93. package/dist/version-check.d.ts +72 -0
  94. package/dist/version-check.js +237 -0
  95. package/dist/version-check.js.map +1 -0
  96. package/dist/workspace-key-mode.js +22 -6
  97. package/dist/workspace-key-mode.js.map +1 -1
  98. package/package.json +4 -3
  99. package/dist/harness-identity.d.ts +0 -17
  100. package/dist/harness-identity.js +0 -105
  101. package/dist/harness-identity.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-args.js","sourceRoot":"","sources":["../src/tool-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-args.js","sourceRoot":"","sources":["../src/tool-args.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEpD,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;KAC1H,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;SAC/D,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;SAClD,GAAG,CACF,yBAAyB,EACzB,qCAAqC,yBAAyB,QAAQ,CACvE;IACH,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5D,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,EAAE;KACR,KAAK,CACJ,iEAAiE,EACjE,6CAA6C,CAC9C,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;SAC7D,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;SAChD,GAAG,CACF,yBAAyB,EACzB,mCAAmC,yBAAyB,QAAQ,CACrE;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC9D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,sDAAsD;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CACF,yBAAyB,EACzB,qCAAqC,yBAAyB,QAAQ,CACvE;SACA,QAAQ,EAAE;IACb,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC;SACE,MAAM,EAAE;SACR,GAAG,CACF,yBAAyB,EACzB,+CAA+C,yBAAyB,QAAQ,CACjF,CACJ;SACA,GAAG,CAAC,GAAG,EAAE,2CAA2C,CAAC;SACrD,QAAQ,EAAE;IACb,wEAAwE;IACxE,2EAA2E;IAC3E,sEAAsE;IACtE,8DAA8D;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;SACpD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,GAAG,EAAE,4DAA4D,CAAC;IACzE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAErD,qGAAqG;AACrG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACnD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,0FAA0F;IAC1F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,2EAA2E;AAC3E,sEAAsE;AACtE,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,qCAAqC;AAErC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAClG,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,KAAK,CAAC,iEAAiE,EAAE,sBAAsB,CAAC,CAAC;AAEpG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,gBAAgB,EAAE,eAAe;IACjC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjC,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;SACvC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAC1B,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,oBAAoB,aAAa,CAAC;IAC/E,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;IACjE,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC9F,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACnG,wEAAwE;IACxE,yEAAyE;IACzE,iEAAiE;IACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,2EAA2E;AAC3E,sEAAsE;AACtE,+DAA+D;AAC/D,yEAAyE;AACzE,wEAAwE;AAExE,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AACrG,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,KAAK,CAAC,iEAAiE,EAAE,sBAAsB,CAAC,CAAC;AAEpG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;SAC3B,GAAG,CAAC,oBAAoB,EAAE,iBAAiB,oBAAoB,aAAa,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,0BAA0B,EAAE,uBAAuB,0BAA0B,aAAa,CAAC;IAClG,eAAe,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SACtD,GAAG,CAAC,uBAAuB,EAAE,2BAA2B,uBAAuB,QAAQ,CAAC;SACxF,QAAQ,EAAE;IACb,YAAY,EAAE,cAAc,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACjG,YAAY,EAAE,cAAc,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,EAAE,iBAAiB,0BAA0B,aAAa,CAAC,CAAC,QAAQ,EAAE;IACtH,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SACtD,GAAG,CAAC,uBAAuB,EAAE,0BAA0B,uBAAuB,QAAQ,CAAC;SACvF,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,EAAE,yCAAyC,CAAC;SACjD,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,iBAAiB,QAAQ,CAAC;CAC3E,CAAC;KACD,MAAM,EAAE,CAAC;AAeZ,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAI,MAAoB,EAAE,GAAY;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,YAAY,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,YAAY,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,OAAO,YAAY,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,YAAY,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,YAAY,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,OAAO,YAAY,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,OAAO,YAAY,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,72 @@
1
+ /** How the running version relates to the latest published version. */
2
+ export type VersionComparison = 'behind' | 'current' | 'ahead';
3
+ /** Why a check produced no answer. Never surfaced as an error to the user. */
4
+ export type VersionCheckSkipReason = 'disabled' | 'unreachable';
5
+ export interface UpdateStatus {
6
+ currentVersion: string;
7
+ latestVersion: string;
8
+ comparison: VersionComparison;
9
+ /** Plain-words upgrade notice. Present only when `comparison` is 'behind'. */
10
+ notice?: string;
11
+ }
12
+ export interface VersionCheckSkipped {
13
+ skipped: VersionCheckSkipReason;
14
+ /** One short phrase naming what went wrong; absent when disabled. */
15
+ detail?: string;
16
+ }
17
+ export type VersionCheckResult = UpdateStatus | VersionCheckSkipped;
18
+ export interface VersionCheckOptions {
19
+ /** The version this process is running (from package.json). */
20
+ currentVersion: string;
21
+ env?: Record<string, string | undefined>;
22
+ fetchImpl?: typeof fetch;
23
+ now?: () => number;
24
+ home?: string;
25
+ timeoutMs?: number;
26
+ cacheTtlMs?: number;
27
+ /** Called once with the notice text when the running version is behind. */
28
+ onUpdateAvailable?: (notice: string) => void;
29
+ }
30
+ /** npm registry endpoint that returns the metadata of the latest release. */
31
+ export declare const REGISTRY_LATEST_URL = "https://registry.npmjs.org/aismemory/latest";
32
+ /** Registry request timeout. Deliberately short — this is advisory only. */
33
+ export declare const VERSION_CHECK_TIMEOUT_MS = 2000;
34
+ /** How long a registry answer is reused before asking again. */
35
+ export declare const VERSION_CHECK_CACHE_TTL_MS: number;
36
+ /**
37
+ * The version this process is running, read from the package manifest that
38
+ * ships beside the compiled entrypoint. Lives here so the model context
39
+ * protocol entrypoint and the doctor command read it from one place.
40
+ */
41
+ export declare function readPackageVersion(): string;
42
+ export declare function isUpdateStatus(result: VersionCheckResult): result is UpdateStatus;
43
+ /** The check is on unless AISMEMORY_VERSION_CHECK names a falsey value. */
44
+ export declare function isVersionCheckEnabled(env?: Record<string, string | undefined>): boolean;
45
+ export declare function versionCacheFilePath(home?: string): string;
46
+ /**
47
+ * Compare two semantic versions: -1 when `left` is older, 1 when newer, 0 when
48
+ * equal. Build metadata (`+sha`) is ignored, as semantic versioning requires.
49
+ */
50
+ export declare function compareVersions(left: string, right: string): -1 | 0 | 1;
51
+ export declare function classifyVersion(current: string, latest: string): VersionComparison;
52
+ /**
53
+ * The one piece of text a customer reads when they are behind. It names both
54
+ * versions and the exact command for each of the two ways people run this
55
+ * package: a global install, and an npx line in a client configuration.
56
+ */
57
+ export declare function formatUpdateNotice(current: string, latest: string): string;
58
+ /**
59
+ * Resolve the update status. Resolves — never rejects: an unreachable registry,
60
+ * a malformed response, or a disabled check all come back as a skip.
61
+ */
62
+ export declare function checkForUpdate(options: VersionCheckOptions): Promise<VersionCheckResult>;
63
+ /**
64
+ * Start the check without blocking the caller. The returned promise is for
65
+ * tests; production callers use `void startVersionCheck(...)` and read the
66
+ * settled answer later through `getUpdateNotice()`.
67
+ */
68
+ export declare function startVersionCheck(options: VersionCheckOptions): Promise<VersionCheckResult>;
69
+ /** The settled notice, or null when up to date, skipped, or not yet answered. */
70
+ export declare function getUpdateNotice(): string | null;
71
+ /** Drops the process-wide notice. Used by tests to isolate cases. */
72
+ export declare function clearUpdateNotice(): void;
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Published-version check for the aismemory package (CORBOT-7B8A1D16).
3
+ *
4
+ * A global install of aismemory never tells its user that a newer version has
5
+ * been published, so an agent can sit on an old version for weeks while every
6
+ * new fix ships past it. This module compares the running version against the
7
+ * latest version on the npm registry and produces one plain-words notice.
8
+ *
9
+ * Design rules this module keeps:
10
+ * - never blocks startup — the caller fires it and does not await it;
11
+ * - never fails the process — every error path resolves to null;
12
+ * - short timeout (2 seconds) so an unreachable registry costs nothing;
13
+ * - cached on disk, so the registry is asked at most about once a day;
14
+ * - switched off entirely with AISMEMORY_VERSION_CHECK=off (or 0/false/no).
15
+ */
16
+ import { homedir } from 'node:os';
17
+ import { join } from 'node:path';
18
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
19
+ /** npm registry endpoint that returns the metadata of the latest release. */
20
+ export const REGISTRY_LATEST_URL = 'https://registry.npmjs.org/aismemory/latest';
21
+ /** Registry request timeout. Deliberately short — this is advisory only. */
22
+ export const VERSION_CHECK_TIMEOUT_MS = 2_000;
23
+ /** How long a registry answer is reused before asking again. */
24
+ export const VERSION_CHECK_CACHE_TTL_MS = 24 * 60 * 60 * 1000;
25
+ const FALSEY = new Set(['0', 'false', 'no', 'off']);
26
+ /**
27
+ * The version this process is running, read from the package manifest that
28
+ * ships beside the compiled entrypoint. Lives here so the model context
29
+ * protocol entrypoint and the doctor command read it from one place.
30
+ */
31
+ export function readPackageVersion() {
32
+ const packageJsonUrl = new URL('../package.json', import.meta.url);
33
+ const packageJson = JSON.parse(readFileSync(packageJsonUrl, 'utf-8'));
34
+ if (typeof packageJson !== 'object' ||
35
+ packageJson === null ||
36
+ !('version' in packageJson) ||
37
+ typeof packageJson.version !== 'string' ||
38
+ packageJson.version.length === 0) {
39
+ throw new Error('Unable to load aismemory package version from package.json');
40
+ }
41
+ return packageJson.version;
42
+ }
43
+ export function isUpdateStatus(result) {
44
+ return 'comparison' in result;
45
+ }
46
+ /** The check is on unless AISMEMORY_VERSION_CHECK names a falsey value. */
47
+ export function isVersionCheckEnabled(env = process.env) {
48
+ const raw = env['AISMEMORY_VERSION_CHECK']?.trim().toLowerCase();
49
+ return raw === undefined || raw === '' || !FALSEY.has(raw);
50
+ }
51
+ export function versionCacheFilePath(home = homedir()) {
52
+ return join(home, '.aismemory', 'version-check.json');
53
+ }
54
+ function parseIdentifiers(part) {
55
+ return part.length === 0 ? [] : part.split('.');
56
+ }
57
+ function compareIdentifier(left, right) {
58
+ const leftNumeric = /^\d+$/.test(left);
59
+ const rightNumeric = /^\d+$/.test(right);
60
+ if (leftNumeric && rightNumeric) {
61
+ const diff = Number(left) - Number(right);
62
+ return diff === 0 ? 0 : diff > 0 ? 1 : -1;
63
+ }
64
+ // Semantic versioning orders numeric identifiers below alphanumeric ones.
65
+ if (leftNumeric)
66
+ return -1;
67
+ if (rightNumeric)
68
+ return 1;
69
+ return left === right ? 0 : left > right ? 1 : -1;
70
+ }
71
+ /**
72
+ * Compare two semantic versions: -1 when `left` is older, 1 when newer, 0 when
73
+ * equal. Build metadata (`+sha`) is ignored, as semantic versioning requires.
74
+ */
75
+ export function compareVersions(left, right) {
76
+ const strip = (version) => version.trim().replace(/^v/, '').split('+')[0] ?? '';
77
+ const [leftCore = '', ...leftRest] = strip(left).split('-');
78
+ const [rightCore = '', ...rightRest] = strip(right).split('-');
79
+ const leftParts = leftCore.split('.').map((n) => Number(n));
80
+ const rightParts = rightCore.split('.').map((n) => Number(n));
81
+ for (let i = 0; i < 3; i += 1) {
82
+ const a = Number.isFinite(leftParts[i]) ? leftParts[i] : 0;
83
+ const b = Number.isFinite(rightParts[i]) ? rightParts[i] : 0;
84
+ if (a !== b)
85
+ return a > b ? 1 : -1;
86
+ }
87
+ const leftPre = parseIdentifiers(leftRest.join('-'));
88
+ const rightPre = parseIdentifiers(rightRest.join('-'));
89
+ // A pre-release is older than the release it leads to (1.0.0-rc < 1.0.0).
90
+ if (leftPre.length === 0 && rightPre.length > 0)
91
+ return 1;
92
+ if (leftPre.length > 0 && rightPre.length === 0)
93
+ return -1;
94
+ for (let i = 0; i < Math.max(leftPre.length, rightPre.length); i += 1) {
95
+ const a = leftPre[i];
96
+ const b = rightPre[i];
97
+ if (a === undefined)
98
+ return -1;
99
+ if (b === undefined)
100
+ return 1;
101
+ const ordered = compareIdentifier(a, b);
102
+ if (ordered !== 0)
103
+ return ordered > 0 ? 1 : -1;
104
+ }
105
+ return 0;
106
+ }
107
+ export function classifyVersion(current, latest) {
108
+ const ordered = compareVersions(current, latest);
109
+ if (ordered < 0)
110
+ return 'behind';
111
+ if (ordered > 0)
112
+ return 'ahead';
113
+ return 'current';
114
+ }
115
+ /**
116
+ * The one piece of text a customer reads when they are behind. It names both
117
+ * versions and the exact command for each of the two ways people run this
118
+ * package: a global install, and an npx line in a client configuration.
119
+ */
120
+ export function formatUpdateNotice(current, latest) {
121
+ return (`aismemory update available: you are running version ${current} and the latest published version is ${latest}. ` +
122
+ 'To update a global install, run: npm install -g aismemory@latest. ' +
123
+ 'To update an npx setup, set the command in your model context protocol client configuration to "npx -y aismemory@latest" and restart the client. ' +
124
+ 'Set AISMEMORY_VERSION_CHECK=off to stop this check.');
125
+ }
126
+ function readCache(home, now, ttlMs) {
127
+ try {
128
+ const parsed = JSON.parse(readFileSync(versionCacheFilePath(home), 'utf-8'));
129
+ if (typeof parsed !== 'object' || parsed === null)
130
+ return null;
131
+ const cache = parsed;
132
+ if (typeof cache.latestVersion !== 'string' || typeof cache.checkedAt !== 'number')
133
+ return null;
134
+ if (now - cache.checkedAt >= ttlMs)
135
+ return null;
136
+ // A clock moved backwards would otherwise pin a stale answer forever.
137
+ if (cache.checkedAt > now)
138
+ return null;
139
+ return cache.latestVersion;
140
+ }
141
+ catch {
142
+ return null;
143
+ }
144
+ }
145
+ function writeCache(home, latestVersion, checkedAt) {
146
+ try {
147
+ mkdirSync(join(home, '.aismemory'), { recursive: true, mode: 0o700 });
148
+ const payload = { latestVersion, checkedAt };
149
+ writeFileSync(versionCacheFilePath(home), JSON.stringify(payload), { mode: 0o600 });
150
+ }
151
+ catch {
152
+ // A read-only home directory must not break the check, let alone startup.
153
+ }
154
+ }
155
+ async function fetchLatestVersion(fetchImpl, timeoutMs) {
156
+ const response = await fetchImpl(REGISTRY_LATEST_URL, {
157
+ headers: { Accept: 'application/json' },
158
+ signal: AbortSignal.timeout(timeoutMs),
159
+ });
160
+ if (!response.ok)
161
+ throw new Error(`npm registry responded HTTP ${response.status}`);
162
+ const body = await response.json();
163
+ if (typeof body !== 'object' || body === null || !('version' in body)) {
164
+ throw new Error('npm registry response carried no version field');
165
+ }
166
+ const { version } = body;
167
+ if (typeof version !== 'string' || version.trim() === '') {
168
+ throw new Error('npm registry response carried no version field');
169
+ }
170
+ return version.trim();
171
+ }
172
+ /**
173
+ * Resolve the update status. Resolves — never rejects: an unreachable registry,
174
+ * a malformed response, or a disabled check all come back as a skip.
175
+ */
176
+ export async function checkForUpdate(options) {
177
+ const env = options.env ?? process.env;
178
+ if (!isVersionCheckEnabled(env))
179
+ return { skipped: 'disabled' };
180
+ const now = (options.now ?? Date.now)();
181
+ const home = options.home ?? homedir();
182
+ const ttlMs = options.cacheTtlMs ?? VERSION_CHECK_CACHE_TTL_MS;
183
+ let latestVersion = readCache(home, now, ttlMs);
184
+ if (latestVersion === null) {
185
+ try {
186
+ latestVersion = await fetchLatestVersion(options.fetchImpl ?? fetch, options.timeoutMs ?? VERSION_CHECK_TIMEOUT_MS);
187
+ writeCache(home, latestVersion, now);
188
+ }
189
+ catch (error) {
190
+ return {
191
+ skipped: 'unreachable',
192
+ detail: error instanceof Error ? error.message : String(error),
193
+ };
194
+ }
195
+ }
196
+ const comparison = classifyVersion(options.currentVersion, latestVersion);
197
+ const status = {
198
+ currentVersion: options.currentVersion,
199
+ latestVersion,
200
+ comparison,
201
+ };
202
+ if (comparison === 'behind') {
203
+ status.notice = formatUpdateNotice(options.currentVersion, latestVersion);
204
+ }
205
+ return status;
206
+ }
207
+ // ── Process-wide notice, read by the model context protocol tool handlers ──
208
+ let updateNotice = null;
209
+ /**
210
+ * Start the check without blocking the caller. The returned promise is for
211
+ * tests; production callers use `void startVersionCheck(...)` and read the
212
+ * settled answer later through `getUpdateNotice()`.
213
+ */
214
+ export async function startVersionCheck(options) {
215
+ let result;
216
+ try {
217
+ result = await checkForUpdate(options);
218
+ }
219
+ catch (error) {
220
+ // checkForUpdate does not reject; this only guards a future regression.
221
+ return { skipped: 'unreachable', detail: error instanceof Error ? error.message : String(error) };
222
+ }
223
+ if (isUpdateStatus(result) && result.notice !== undefined) {
224
+ updateNotice = result.notice;
225
+ options.onUpdateAvailable?.(result.notice);
226
+ }
227
+ return result;
228
+ }
229
+ /** The settled notice, or null when up to date, skipped, or not yet answered. */
230
+ export function getUpdateNotice() {
231
+ return updateNotice;
232
+ }
233
+ /** Drops the process-wide notice. Used by tests to isolate cases. */
234
+ export function clearUpdateNotice() {
235
+ updateNotice = null;
236
+ }
237
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,10 @@
15
15
  *
16
16
  * Precedence: workspace key -> agent API key -> DID/device flow.
17
17
  */
18
- import { AisHttpError } from './ais-http-error.js';
18
+ import { AisHttpError, duplicateMemoryResult } from './ais-http-error.js';
19
19
  import { emitTelemetry } from './telemetry.js';
20
20
  import { OutOfScopeToolError } from './agent-key-mode.js';
21
+ import { AGENT_ARCHIVE_KEY_MODE_DETAIL } from './agent-archive.js';
21
22
  import { parseEmptyToolArgs, parseRecallArgs, parseFullContextArgs, parseRememberArgs, parseAgentLoadArgs, parseGoalCreateArgs, parseGoalListArgs, parseGoalUpdateProgressArgs, parseGoalCompleteArgs, } from './tool-args.js';
22
23
  /** Thrown by loadWorkspaceKeyConfig when AIS_WORKSPACE_KEY is set without AIS_AGENT_ID. */
23
24
  export class WorkspaceKeyConfigError extends Error {
@@ -147,11 +148,21 @@ export async function dispatchToolWorkspaceKeyMode(aisUrl, config, name, rawArgs
147
148
  switch (name) {
148
149
  case 'remember': {
149
150
  const args = parseRememberArgs(rawArgs);
150
- return wksKeyPost(aisUrl, `/v1/agents/${agentId}/memory`, workspaceKey, {
151
- content: args.content,
152
- type: args.type,
153
- importance: args.importance,
154
- }, fetchImpl);
151
+ try {
152
+ return await wksKeyPost(aisUrl, `/v1/agents/${agentId}/memory`, workspaceKey, {
153
+ content: args.content,
154
+ type: args.type,
155
+ importance: args.importance,
156
+ ...(args.tags !== undefined && { tags: args.tags }),
157
+ }, fetchImpl);
158
+ }
159
+ catch (err) {
160
+ // CORBOT-F21668B5: see agent-key-mode — dedup is a truthful success.
161
+ const duplicate = duplicateMemoryResult(err);
162
+ if (duplicate)
163
+ return duplicate;
164
+ throw err;
165
+ }
155
166
  }
156
167
  case 'recall': {
157
168
  const args = parseRecallArgs(rawArgs);
@@ -161,6 +172,8 @@ export async function dispatchToolWorkspaceKeyMode(aisUrl, config, name, rawArgs
161
172
  params.set('limit', String(args.limit));
162
173
  if (args.type !== undefined)
163
174
  params.set('types', args.type);
175
+ if (args.tags !== undefined && args.tags.length > 0)
176
+ params.set('tags', args.tags.join(','));
164
177
  if (args.principalAgentId !== undefined) {
165
178
  params.set('principalAgentId', args.principalAgentId);
166
179
  }
@@ -251,6 +264,9 @@ export async function dispatchToolWorkspaceKeyMode(aisUrl, config, name, rawArgs
251
264
  // existing absence from this dispatcher.
252
265
  case 'handoff':
253
266
  throw new OutOfScopeToolError('handoff', "the handoff route is outside the key's allowed scope (memory, goals, dream, full-context).");
267
+ case 'agent_archive':
268
+ case 'agent_delete':
269
+ throw new OutOfScopeToolError(name, AGENT_ARCHIVE_KEY_MODE_DETAIL);
254
270
  default:
255
271
  return UNKNOWN_TOOL_WORKSPACE_KEY_MODE;
256
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-key-mode.js","sourceRoot":"","sources":["../src/workspace-key-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-key-mode.js","sourceRoot":"","sources":["../src/workspace-key-mode.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "aismemory",
3
- "version": "0.7.4",
3
+ "version": "0.8.0",
4
4
  "description": "Persistent memory for AI agents. MCP server that connects to Agent Identity Service.",
5
5
  "mcpName": "ai.agentsandswarms/ais-memory",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "aismemory": "dist/index.js",
9
9
  "aismemory-sync": "dist/cli/sync-memory.js",
10
- "aismemory-doctor": "dist/cli/doctor.js"
10
+ "aismemory-doctor": "dist/cli/doctor.js",
11
+ "aismemory-pull": "dist/cli/pull-memory.js"
11
12
  },
12
13
  "main": "dist/index.js",
13
14
  "files": [
@@ -15,7 +16,7 @@
15
16
  "README.md"
16
17
  ],
17
18
  "scripts": {
18
- "build": "tsc && chmod +x dist/index.js dist/cli/sync-memory.js dist/cli/doctor.js",
19
+ "build": "tsc && chmod +x dist/index.js dist/cli/sync-memory.js dist/cli/doctor.js dist/cli/pull-memory.js",
19
20
  "prepack": "npm run build",
20
21
  "sync": "node dist/cli/sync-memory.js",
21
22
  "test": "vitest run",
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- declare const manifestSchema: z.ZodObject<{
3
- version: z.ZodLiteral<1>;
4
- harness: z.ZodString;
5
- agentId: z.ZodString;
6
- }, z.core.$strict>;
7
- export type HarnessIdentity = z.infer<typeof manifestSchema>;
8
- export declare const IDENTITY_REPAIR = "Create a JSON manifest {\"version\":1,\"harness\":\"<harness>\",\"agentId\":\"<intended-agent-id>\"}; run aismemory install --manifest <file>; launch this harness with aismemory --harness <harness>, restart it, then run aismemory doctor --harness <harness>.";
9
- export declare function optionValue(argv: string[], option: string): string | undefined;
10
- /** Installs only non-secret identity metadata; never edits a harness env or credentials. */
11
- export declare function installHarnessIdentity(source: string, home?: string): HarnessIdentity;
12
- export declare function loadHarnessIdentity(argv?: string[], env?: NodeJS.ProcessEnv, home?: string): HarnessIdentity | null;
13
- export declare function assertPinnedAgent(pin: HarnessIdentity | null, agentId: string): void;
14
- /** Verify the same whoami response exposed by the selected auth adapter, before every mutation. */
15
- export declare function verifyPinnedIdentity(pin: HarnessIdentity | null, agentId: string, whoami: () => Promise<unknown>): Promise<void>;
16
- export declare function requiresIdentityGate(name: string, args: Record<string, unknown>): boolean;
17
- export {};
@@ -1,105 +0,0 @@
1
- /**
2
- * Install one non-secret {version: 1, harness, agentId} manifest per harness:
3
- * aismemory install --manifest <file>, then launch aismemory --harness <name>.
4
- * Installation refuses to replace an existing pin. To change it deliberately,
5
- * stop the harness, preserve/remove its manifest, install the replacement, and
6
- * restart. Undo by restoring the preserved manifest before restarting.
7
- * Neither installer nor doctor edits live harness configuration or credentials.
8
- * A CLI doctor PASS verifies its own credential context, not a desktop restart.
9
- */
10
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
11
- import { homedir } from 'node:os';
12
- import { join } from 'node:path';
13
- import { z } from 'zod';
14
- const manifestSchema = z.object({
15
- version: z.literal(1),
16
- harness: z.string().regex(/^[a-z][a-z0-9-]{0,63}$/),
17
- agentId: z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9-]{0,127}$/),
18
- }).strict();
19
- export const IDENTITY_REPAIR = 'Create a JSON manifest {"version":1,"harness":"<harness>","agentId":"<intended-agent-id>"}; run aismemory install --manifest <file>; launch this harness with aismemory --harness <harness>, restart it, then run aismemory doctor --harness <harness>.';
20
- export function optionValue(argv, option) {
21
- const index = argv.indexOf(option);
22
- if (index === -1)
23
- return undefined;
24
- const value = argv[index + 1];
25
- if (!value || value.startsWith('--'))
26
- throw new Error(`Missing value for ${option}. ${IDENTITY_REPAIR}`);
27
- return value;
28
- }
29
- function manifestPath(harness, home) {
30
- const name = manifestSchema.shape.harness.parse(harness);
31
- return join(home, '.aismemory', 'harnesses', `${name}.json`);
32
- }
33
- /** Installs only non-secret identity metadata; never edits a harness env or credentials. */
34
- export function installHarnessIdentity(source, home = homedir()) {
35
- const identity = manifestSchema.parse(JSON.parse(readFileSync(source, 'utf8')));
36
- const path = manifestPath(identity.harness, home);
37
- mkdirSync(join(home, '.aismemory', 'harnesses'), { recursive: true, mode: 0o700 });
38
- // An existing pin must be deliberately removed before it can be replaced.
39
- writeFileSync(path, `${JSON.stringify(identity, null, 2)}\n`, { flag: 'wx', mode: 0o600 });
40
- return identity;
41
- }
42
- export function loadHarnessIdentity(argv = process.argv.slice(2), env = process.env, home = homedir()) {
43
- const harness = optionValue(argv, '--harness');
44
- if (harness) {
45
- try {
46
- const pin = manifestSchema.parse(JSON.parse(readFileSync(manifestPath(harness, home), 'utf8')));
47
- if (pin.harness !== harness)
48
- throw new Error('Harness name mismatch');
49
- const envAgentId = env['AIS_AGENT_ID']?.trim();
50
- if (envAgentId !== undefined && envAgentId !== '' && envAgentId !== pin.agentId) {
51
- throw new Error('AIS_AGENT_ID conflicts with the installed harness pin');
52
- }
53
- return pin;
54
- }
55
- catch {
56
- throw new Error(`Identity gate: invalid, missing, or conflicting pin for ${harness}. ${IDENTITY_REPAIR}`);
57
- }
58
- }
59
- // Trim before validating: secret injection (a sourced .env file, a CI secret,
60
- // a Kubernetes secret mount) commonly appends a trailing newline. This runs
61
- // BEFORE main()'s agent-API-key check, so an untrimmed value failed the
62
- // agentId regex here and killed the process with a raw schema error — agent
63
- // API key mode could never engage even though its own loader trims for
64
- // exactly this reason (CORBOT-D8D35CF0).
65
- const agentId = env['AIS_AGENT_ID']?.trim();
66
- if (agentId === undefined || agentId === '')
67
- return null;
68
- return manifestSchema.parse({ version: 1, harness: 'env-pin', agentId });
69
- }
70
- function repairFor(pin) {
71
- if (!pin || pin.harness === 'env-pin')
72
- return IDENTITY_REPAIR;
73
- return `Restart this harness with aismemory --harness ${pin.harness}; run aismemory doctor --harness ${pin.harness} and confirm whoami is ${pin.agentId}. Restore that harness manifest if incorrect; never change the shared credential default to repair attribution.`;
74
- }
75
- export function assertPinnedAgent(pin, agentId) {
76
- if (!pin)
77
- return;
78
- if (pin.agentId !== agentId) {
79
- throw new Error(`Identity gate: expected ${pin.agentId}, received ${agentId}. Writes stopped. ${repairFor(pin)}`);
80
- }
81
- }
82
- /** Verify the same whoami response exposed by the selected auth adapter, before every mutation. */
83
- export async function verifyPinnedIdentity(pin, agentId, whoami) {
84
- if (!pin)
85
- return;
86
- assertPinnedAgent(pin, agentId);
87
- let result;
88
- try {
89
- result = await whoami();
90
- }
91
- catch {
92
- throw new Error(`Identity gate: whoami unavailable for ${agentId}. Writes stopped. ${repairFor(pin)}`);
93
- }
94
- const parsed = z.object({ success: z.literal(true), data: z.object({
95
- id: z.string().optional(), agentId: z.string().optional(),
96
- }) }).safeParse(result);
97
- if (!parsed.success || (parsed.data.data.id ?? parsed.data.data.agentId) !== agentId) {
98
- throw new Error(`Identity gate: whoami did not confirm ${agentId}. Writes stopped. ${repairFor(pin)}`);
99
- }
100
- }
101
- export function requiresIdentityGate(name, args) {
102
- return ['remember', 'handoff', 'dream', 'inbox_send'].includes(name) ||
103
- (name === 'inbox_read' && args['ack'] === true);
104
- }
105
- //# sourceMappingURL=harness-identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"harness-identity.js","sourceRoot":"","sources":["../src/harness-identity.ts"],"names":[],"mappings":"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"}