@withbuddi/buddi 0.1.0-pre.43 → 0.1.0-pre.44
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/examples/agents/agent-father/agent.md +12 -5
- package/examples/agents/concierge/agent.md +11 -3
- package/extension/icons/128.png +0 -0
- package/extension/icons/16.png +0 -0
- package/extension/icons/32.png +0 -0
- package/extension/icons/48.png +0 -0
- package/extension/manifest.json +7 -3
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/access-cmd.d.ts +2 -1
- package/node_modules/@buddi/cli/dist/access-cmd.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/access-cmd.js +40 -7
- package/node_modules/@buddi/cli/dist/access-cmd.js.map +1 -1
- package/node_modules/@buddi/cli/dist/args.d.ts +2 -1
- package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/args.js +7 -3
- package/node_modules/@buddi/cli/dist/args.js.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.js +3 -2
- package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +1 -1
- package/node_modules/@buddi/cli/dist/main.js.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/server.js +1 -1
- package/node_modules/@buddi/cli/dist/mcp/server.js.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/tools.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/tools.js +60 -0
- package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/lock.d.ts +15 -1
- package/node_modules/@buddi/core/dist/lock.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/lock.js +15 -1
- package/node_modules/@buddi/core/dist/lock.js.map +1 -1
- package/node_modules/@buddi/core/dist/pages.d.ts +75 -0
- package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/pages.js +14 -0
- package/node_modules/@buddi/core/dist/pages.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +2 -2
- package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts +32 -0
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js +22 -0
- package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/core/migrations/077_lock_background_portrait.sql +5 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts +21 -8
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +201 -36
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/evals/golden.d.ts +5 -0
- package/node_modules/@buddi/gateway/dist/evals/golden.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/evals/golden.js +48 -0
- package/node_modules/@buddi/gateway/dist/evals/golden.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +8 -2
- package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/mcp/requests.js +74 -1
- package/node_modules/@buddi/gateway/dist/mcp/requests.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/owner-profile-edit.d.ts +160 -0
- package/node_modules/@buddi/gateway/dist/owner-profile-edit.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/owner-profile-edit.js +296 -0
- package/node_modules/@buddi/gateway/dist/owner-profile-edit.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js +2 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.d.ts +63 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.js +87 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts +39 -4
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js +99 -11
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/index.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/access/index.js +1 -0
- package/node_modules/@buddi/gateway/dist/web/access/index.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +18 -2
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.d.ts +9 -0
- package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.js +60 -0
- package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/lock.d.ts +13 -1
- package/node_modules/@buddi/gateway/dist/web/lock.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/lock.js +84 -23
- package/node_modules/@buddi/gateway/dist/web/lock.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/places.d.ts +5 -0
- package/node_modules/@buddi/gateway/dist/web/places.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/places.js +11 -4
- package/node_modules/@buddi/gateway/dist/web/places.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts +3 -0
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +33 -45
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/install/dist/cloudflared.d.ts +121 -0
- package/node_modules/@buddi/install/dist/cloudflared.d.ts.map +1 -0
- package/node_modules/@buddi/install/dist/cloudflared.js +451 -0
- package/node_modules/@buddi/install/dist/cloudflared.js.map +1 -0
- package/node_modules/@buddi/install/dist/index.d.ts +1 -0
- package/node_modules/@buddi/install/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/index.js +1 -0
- package/node_modules/@buddi/install/dist/index.js.map +1 -1
- package/node_modules/@buddi/install/dist/supervisor.d.ts +6 -1
- package/node_modules/@buddi/install/dist/supervisor.d.ts.map +1 -1
- package/node_modules/@buddi/install/dist/supervisor.js +51 -5
- package/node_modules/@buddi/install/dist/supervisor.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/html.d.ts +16 -0
- package/node_modules/@buddi/tool-email/dist/html.d.ts.map +1 -0
- package/node_modules/@buddi/tool-email/dist/html.js +273 -0
- package/node_modules/@buddi/tool-email/dist/html.js.map +1 -0
- package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts +7 -0
- package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js +53 -0
- package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/mail.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/mail.js +4 -0
- package/node_modules/@buddi/tool-email/dist/mail.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/descriptors.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/descriptors.js +208 -176
- package/node_modules/@buddi/tool-email/dist/pages/descriptors.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/index.d.ts +1 -0
- package/node_modules/@buddi/tool-email/dist/pages/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/index.js +3 -0
- package/node_modules/@buddi/tool-email/dist/pages/index.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +14 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.js +267 -58
- package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/thread-tools.d.ts +25 -0
- package/node_modules/@buddi/tool-email/dist/pages/thread-tools.d.ts.map +1 -0
- package/node_modules/@buddi/tool-email/dist/pages/thread-tools.js +33 -0
- package/node_modules/@buddi/tool-email/dist/pages/thread-tools.js.map +1 -0
- package/node_modules/@buddi/tool-email/dist/ports.d.ts +10 -0
- package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/ports.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/retention.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/retention.js +1 -0
- package/node_modules/@buddi/tool-email/dist/retention.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +4 -2
- package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
- package/node_modules/@buddi/tool-email/migrations/028_reading.sql +20 -0
- package/node_modules/@buddi/tool-email/package.json +1 -0
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/entities/LICENSE +11 -0
- package/node_modules/entities/decode.d.ts +1 -0
- package/node_modules/entities/decode.js +3 -0
- package/node_modules/entities/dist/commonjs/decode-codepoint.d.ts +19 -0
- package/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
- package/node_modules/entities/dist/commonjs/decode.d.ts +209 -0
- package/node_modules/entities/dist/commonjs/decode.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/decode.js +511 -0
- package/node_modules/entities/dist/commonjs/decode.js.map +1 -0
- package/node_modules/entities/dist/commonjs/encode.d.ts +22 -0
- package/node_modules/entities/dist/commonjs/encode.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/encode.js +73 -0
- package/node_modules/entities/dist/commonjs/encode.js.map +1 -0
- package/node_modules/entities/dist/commonjs/escape.d.ts +43 -0
- package/node_modules/entities/dist/commonjs/escape.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/escape.js +121 -0
- package/node_modules/entities/dist/commonjs/escape.js.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts +2 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts +2 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
- package/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/encode-html.d.ts +8 -0
- package/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
- package/node_modules/entities/dist/commonjs/generated/encode-html.js.map +1 -0
- package/node_modules/entities/dist/commonjs/index.d.ts +96 -0
- package/node_modules/entities/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/entities/dist/commonjs/index.js +131 -0
- package/node_modules/entities/dist/commonjs/index.js.map +1 -0
- package/node_modules/entities/dist/commonjs/package.json +3 -0
- package/node_modules/entities/dist/esm/decode-codepoint.d.ts +19 -0
- package/node_modules/entities/dist/esm/decode-codepoint.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
- package/node_modules/entities/dist/esm/decode-codepoint.js.map +1 -0
- package/node_modules/entities/dist/esm/decode.d.ts +209 -0
- package/node_modules/entities/dist/esm/decode.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/decode.js +497 -0
- package/node_modules/entities/dist/esm/decode.js.map +1 -0
- package/node_modules/entities/dist/esm/encode.d.ts +22 -0
- package/node_modules/entities/dist/esm/encode.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/encode.js +69 -0
- package/node_modules/entities/dist/esm/encode.js.map +1 -0
- package/node_modules/entities/dist/esm/escape.d.ts +43 -0
- package/node_modules/entities/dist/esm/escape.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/escape.js +117 -0
- package/node_modules/entities/dist/esm/escape.js.map +1 -0
- package/node_modules/entities/dist/esm/generated/decode-data-html.d.ts +2 -0
- package/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
- package/node_modules/entities/dist/esm/generated/decode-data-html.js.map +1 -0
- package/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts +2 -0
- package/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
- package/node_modules/entities/dist/esm/generated/decode-data-xml.js.map +1 -0
- package/node_modules/entities/dist/esm/generated/encode-html.d.ts +8 -0
- package/node_modules/entities/dist/esm/generated/encode-html.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
- package/node_modules/entities/dist/esm/generated/encode-html.js.map +1 -0
- package/node_modules/entities/dist/esm/index.d.ts +96 -0
- package/node_modules/entities/dist/esm/index.d.ts.map +1 -0
- package/node_modules/entities/dist/esm/index.js +107 -0
- package/node_modules/entities/dist/esm/index.js.map +1 -0
- package/node_modules/entities/dist/esm/package.json +3 -0
- package/node_modules/entities/escape.d.ts +1 -0
- package/node_modules/entities/escape.js +3 -0
- package/node_modules/entities/package.json +118 -0
- package/node_modules/entities/readme.md +122 -0
- package/node_modules/entities/src/decode-codepoint.ts +81 -0
- package/node_modules/entities/src/decode.spec.ts +320 -0
- package/node_modules/entities/src/decode.ts +620 -0
- package/node_modules/entities/src/encode.spec.ts +78 -0
- package/node_modules/entities/src/encode.ts +77 -0
- package/node_modules/entities/src/escape.spec.ts +14 -0
- package/node_modules/entities/src/escape.ts +148 -0
- package/node_modules/entities/src/generated/.eslintrc.json +10 -0
- package/node_modules/entities/src/generated/decode-data-html.ts +8 -0
- package/node_modules/entities/src/generated/decode-data-xml.ts +8 -0
- package/node_modules/entities/src/generated/encode-html.ts +17 -0
- package/node_modules/entities/src/index.spec.ts +125 -0
- package/node_modules/entities/src/index.ts +188 -0
- package/node_modules/parse5/LICENSE +19 -0
- package/node_modules/parse5/README.md +38 -0
- package/node_modules/parse5/dist/cjs/common/doctype.d.ts +4 -0
- package/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
- package/node_modules/parse5/dist/cjs/common/error-codes.d.ts +67 -0
- package/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
- package/node_modules/parse5/dist/cjs/common/foreign-content.d.ts +9 -0
- package/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
- package/node_modules/parse5/dist/cjs/common/html.d.ts +289 -0
- package/node_modules/parse5/dist/cjs/common/html.js +528 -0
- package/node_modules/parse5/dist/cjs/common/token.d.ts +84 -0
- package/node_modules/parse5/dist/cjs/common/token.js +24 -0
- package/node_modules/parse5/dist/cjs/common/unicode.d.ts +42 -0
- package/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
- package/node_modules/parse5/dist/cjs/index.d.ts +71 -0
- package/node_modules/parse5/dist/cjs/index.js +54 -0
- package/node_modules/parse5/dist/cjs/package.json +1 -0
- package/node_modules/parse5/dist/cjs/parser/formatting-element-list.d.ts +36 -0
- package/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
- package/node_modules/parse5/dist/cjs/parser/index.d.ts +221 -0
- package/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
- package/node_modules/parse5/dist/cjs/parser/open-element-stack.d.ts +53 -0
- package/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
- package/node_modules/parse5/dist/cjs/serializer/index.d.ts +60 -0
- package/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
- package/node_modules/parse5/dist/cjs/tokenizer/index.d.ts +247 -0
- package/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
- package/node_modules/parse5/dist/cjs/tokenizer/preprocessor.d.ts +36 -0
- package/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
- package/node_modules/parse5/dist/cjs/tree-adapters/default.d.ts +84 -0
- package/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
- package/node_modules/parse5/dist/cjs/tree-adapters/interface.d.ts +255 -0
- package/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
- package/node_modules/parse5/dist/common/doctype.d.ts +4 -0
- package/node_modules/parse5/dist/common/doctype.js +114 -0
- package/node_modules/parse5/dist/common/error-codes.d.ts +67 -0
- package/node_modules/parse5/dist/common/error-codes.js +63 -0
- package/node_modules/parse5/dist/common/foreign-content.d.ts +9 -0
- package/node_modules/parse5/dist/common/foreign-content.js +228 -0
- package/node_modules/parse5/dist/common/html.d.ts +289 -0
- package/node_modules/parse5/dist/common/html.js +523 -0
- package/node_modules/parse5/dist/common/token.d.ts +84 -0
- package/node_modules/parse5/dist/common/token.js +20 -0
- package/node_modules/parse5/dist/common/unicode.d.ts +42 -0
- package/node_modules/parse5/dist/common/unicode.js +62 -0
- package/node_modules/parse5/dist/index.d.ts +71 -0
- package/node_modules/parse5/dist/index.js +42 -0
- package/node_modules/parse5/dist/parser/formatting-element-list.d.ts +36 -0
- package/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
- package/node_modules/parse5/dist/parser/index.d.ts +221 -0
- package/node_modules/parse5/dist/parser/index.js +3245 -0
- package/node_modules/parse5/dist/parser/open-element-stack.d.ts +53 -0
- package/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
- package/node_modules/parse5/dist/serializer/index.d.ts +60 -0
- package/node_modules/parse5/dist/serializer/index.js +168 -0
- package/node_modules/parse5/dist/tokenizer/index.d.ts +247 -0
- package/node_modules/parse5/dist/tokenizer/index.js +2710 -0
- package/node_modules/parse5/dist/tokenizer/preprocessor.d.ts +36 -0
- package/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
- package/node_modules/parse5/dist/tree-adapters/default.d.ts +84 -0
- package/node_modules/parse5/dist/tree-adapters/default.js +173 -0
- package/node_modules/parse5/dist/tree-adapters/interface.d.ts +255 -0
- package/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
- package/node_modules/parse5/package.json +50 -0
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/access-cmd.d.ts +2 -1
- package/packages/cli/dist/access-cmd.d.ts.map +1 -1
- package/packages/cli/dist/access-cmd.js +40 -7
- package/packages/cli/dist/access-cmd.js.map +1 -1
- package/packages/cli/dist/args.d.ts +2 -1
- package/packages/cli/dist/args.d.ts.map +1 -1
- package/packages/cli/dist/args.js +7 -3
- package/packages/cli/dist/args.js.map +1 -1
- package/packages/cli/dist/commands.d.ts.map +1 -1
- package/packages/cli/dist/commands.js +3 -2
- package/packages/cli/dist/commands.js.map +1 -1
- package/packages/cli/dist/main.js +1 -1
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/dist/mcp/server.js +1 -1
- package/packages/cli/dist/mcp/server.js.map +1 -1
- package/packages/cli/dist/mcp/tools.d.ts.map +1 -1
- package/packages/cli/dist/mcp/tools.js +60 -0
- package/packages/cli/dist/mcp/tools.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/lock.d.ts +15 -1
- package/packages/core/dist/lock.d.ts.map +1 -1
- package/packages/core/dist/lock.js +15 -1
- package/packages/core/dist/lock.js.map +1 -1
- package/packages/core/dist/pages.d.ts +75 -0
- package/packages/core/dist/pages.d.ts.map +1 -1
- package/packages/core/dist/pages.js +14 -0
- package/packages/core/dist/pages.js.map +1 -1
- package/packages/core/dist/plugin/index.d.ts +2 -2
- package/packages/core/dist/plugin/index.d.ts.map +1 -1
- package/packages/core/dist/plugin/index.js.map +1 -1
- package/packages/core/dist/plugin/version.d.ts +1 -1
- package/packages/core/dist/plugin/version.js +1 -1
- package/packages/core/dist/provider-accounts.d.ts +32 -0
- package/packages/core/dist/provider-accounts.d.ts.map +1 -1
- package/packages/core/dist/provider-accounts.js +22 -0
- package/packages/core/dist/provider-accounts.js.map +1 -1
- package/packages/core/migrations/077_lock_background_portrait.sql +5 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/owner-tools.d.ts +21 -8
- package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/packages/gateway/dist/agents/owner-tools.js +201 -36
- package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
- package/packages/gateway/dist/evals/golden.d.ts +5 -0
- package/packages/gateway/dist/evals/golden.d.ts.map +1 -1
- package/packages/gateway/dist/evals/golden.js +48 -0
- package/packages/gateway/dist/evals/golden.js.map +1 -1
- package/packages/gateway/dist/mcp/requests.d.ts +8 -2
- package/packages/gateway/dist/mcp/requests.d.ts.map +1 -1
- package/packages/gateway/dist/mcp/requests.js +74 -1
- package/packages/gateway/dist/mcp/requests.js.map +1 -1
- package/packages/gateway/dist/owner-profile-edit.d.ts +160 -0
- package/packages/gateway/dist/owner-profile-edit.d.ts.map +1 -0
- package/packages/gateway/dist/owner-profile-edit.js +296 -0
- package/packages/gateway/dist/owner-profile-edit.js.map +1 -0
- package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/packages/gateway/dist/provider-accounts.js +2 -1
- package/packages/gateway/dist/provider-accounts.js.map +1 -1
- package/packages/gateway/dist/web/access/cloudflare-connector.d.ts +63 -0
- package/packages/gateway/dist/web/access/cloudflare-connector.d.ts.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-connector.js +87 -0
- package/packages/gateway/dist/web/access/cloudflare-connector.js.map +1 -0
- package/packages/gateway/dist/web/access/cloudflare-setup.d.ts +39 -4
- package/packages/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -1
- package/packages/gateway/dist/web/access/cloudflare-setup.js +99 -11
- package/packages/gateway/dist/web/access/cloudflare-setup.js.map +1 -1
- package/packages/gateway/dist/web/access/cloudflare-token.js +1 -1
- package/packages/gateway/dist/web/access/cloudflare-token.js.map +1 -1
- package/packages/gateway/dist/web/access/index.d.ts +1 -0
- package/packages/gateway/dist/web/access/index.d.ts.map +1 -1
- package/packages/gateway/dist/web/access/index.js +1 -0
- package/packages/gateway/dist/web/access/index.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +18 -2
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/lock-backgrounds.d.ts +9 -0
- package/packages/gateway/dist/web/lock-backgrounds.d.ts.map +1 -0
- package/packages/gateway/dist/web/lock-backgrounds.js +60 -0
- package/packages/gateway/dist/web/lock-backgrounds.js.map +1 -0
- package/packages/gateway/dist/web/lock.d.ts +13 -1
- package/packages/gateway/dist/web/lock.d.ts.map +1 -1
- package/packages/gateway/dist/web/lock.js +84 -23
- package/packages/gateway/dist/web/lock.js.map +1 -1
- package/packages/gateway/dist/web/places.d.ts +5 -0
- package/packages/gateway/dist/web/places.d.ts.map +1 -1
- package/packages/gateway/dist/web/places.js +11 -4
- package/packages/gateway/dist/web/places.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts +3 -0
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +33 -45
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/install/dist/cloudflared.d.ts +121 -0
- package/packages/install/dist/cloudflared.d.ts.map +1 -0
- package/packages/install/dist/cloudflared.js +451 -0
- package/packages/install/dist/cloudflared.js.map +1 -0
- package/packages/install/dist/index.d.ts +1 -0
- package/packages/install/dist/index.d.ts.map +1 -1
- package/packages/install/dist/index.js +1 -0
- package/packages/install/dist/index.js.map +1 -1
- package/packages/install/dist/supervisor.d.ts +6 -1
- package/packages/install/dist/supervisor.d.ts.map +1 -1
- package/packages/install/dist/supervisor.js +51 -5
- package/packages/install/dist/supervisor.js.map +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/html.d.ts +16 -0
- package/packages/tools/email/dist/html.d.ts.map +1 -0
- package/packages/tools/email/dist/html.js +273 -0
- package/packages/tools/email/dist/html.js.map +1 -0
- package/packages/tools/email/dist/imap/imapflow-client.d.ts +7 -0
- package/packages/tools/email/dist/imap/imapflow-client.d.ts.map +1 -1
- package/packages/tools/email/dist/imap/imapflow-client.js +53 -0
- package/packages/tools/email/dist/imap/imapflow-client.js.map +1 -1
- package/packages/tools/email/dist/mail.d.ts.map +1 -1
- package/packages/tools/email/dist/mail.js +4 -0
- package/packages/tools/email/dist/mail.js.map +1 -1
- package/packages/tools/email/dist/pages/descriptors.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/descriptors.js +208 -176
- package/packages/tools/email/dist/pages/descriptors.js.map +1 -1
- package/packages/tools/email/dist/pages/index.d.ts +1 -0
- package/packages/tools/email/dist/pages/index.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/index.js +3 -0
- package/packages/tools/email/dist/pages/index.js.map +1 -1
- package/packages/tools/email/dist/pages/queries.d.ts +14 -1
- package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/queries.js +267 -58
- package/packages/tools/email/dist/pages/queries.js.map +1 -1
- package/packages/tools/email/dist/pages/thread-tools.d.ts +25 -0
- package/packages/tools/email/dist/pages/thread-tools.d.ts.map +1 -0
- package/packages/tools/email/dist/pages/thread-tools.js +33 -0
- package/packages/tools/email/dist/pages/thread-tools.js.map +1 -0
- package/packages/tools/email/dist/ports.d.ts +10 -0
- package/packages/tools/email/dist/ports.d.ts.map +1 -1
- package/packages/tools/email/dist/ports.js.map +1 -1
- package/packages/tools/email/dist/retention.d.ts.map +1 -1
- package/packages/tools/email/dist/retention.js +1 -0
- package/packages/tools/email/dist/retention.js.map +1 -1
- package/packages/tools/email/dist/sources/inbox-poll.d.ts.map +1 -1
- package/packages/tools/email/dist/sources/inbox-poll.js +4 -2
- package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
- package/packages/tools/email/migrations/028_reading.sql +20 -0
- package/packages/tools/email/package.json +1 -0
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/apple-touch-icon.png +0 -0
- package/packages/web/dist/assets/index-C1sRt7zd.js +149 -0
- package/packages/web/dist/assets/index-CdZpSJ4_.css +1 -0
- package/packages/web/dist/assets/{lottie_light-CHWAvOde.js → lottie_light-DnYl9yaP.js} +1 -1
- package/packages/web/dist/backgrounds/golden-streak-portrait.jpg +0 -0
- package/packages/web/dist/backgrounds/golden-streak-thumb.jpg +0 -0
- package/packages/web/dist/backgrounds/manifest.json +18 -0
- package/packages/web/dist/backgrounds/peoria-autumn-waterfront-thumb.jpg +0 -0
- package/packages/web/dist/backgrounds/peoria-autumn-waterfront.jpg +0 -0
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/favicon-16.png +0 -0
- package/packages/web/dist/favicon-32.png +0 -0
- package/packages/web/dist/favicon.ico +0 -0
- package/packages/web/dist/icon-192.png +0 -0
- package/packages/web/dist/icon-512.png +0 -0
- package/packages/web/dist/index.html +6 -3
- package/packages/web/dist/manifest.webmanifest +1 -1
- package/packages/web/dist/maskable-512.png +0 -0
- package/packages/web/dist/precache.json +7 -5
- package/packages/web/dist/assets/index-BB52n8Fa.js +0 -146
- package/packages/web/dist/assets/index-CY4cPN4I.css +0 -1
- package/packages/web/dist/favicon.png +0 -0
- package/packages/web/dist/icon-maskable-512.png +0 -0
|
@@ -5,12 +5,22 @@
|
|
|
5
5
|
* decides only when it happens (the surfaces) and stores what came out of it
|
|
6
6
|
* (core); the questions, their order, and what to do when the owner answers
|
|
7
7
|
* something else entirely belong to the agent and its `first-run` skill. These
|
|
8
|
-
*
|
|
8
|
+
* tools are the whole seam between the two.
|
|
9
9
|
*
|
|
10
|
-
* Everything here is tier `auto` and deliberately so:
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Everything here is tier `auto` and deliberately so: an approval prompt in
|
|
11
|
+
* the middle of "what should I call you?" would be the opposite of the
|
|
12
|
+
* experience this exists to create. Two things are not quite that simple, and
|
|
13
|
+
* are said here so nobody reads the tier as a promise it is not:
|
|
14
|
+
*
|
|
15
|
+
* - `set_profile` with a place sends that address to the geocoder Settings →
|
|
16
|
+
* Profile already uses (the owner's own words, leaving the machine), one
|
|
17
|
+
* lookup per call and no more.
|
|
18
|
+
* - `set_profile` that *deletes* — `clear` a field, `removePlaces` — goes
|
|
19
|
+
* gated for that call (`tierFor`), with the same card `mcp.profile_update`
|
|
20
|
+
* shows: forgetting what the owner told buddi is his to confirm. Plain
|
|
21
|
+
* sets stay auto.
|
|
22
|
+
*
|
|
23
|
+
* The one edit that touches a file — `rename_me` —
|
|
14
24
|
* refuses far more than it accepts: an example the repository ships is never
|
|
15
25
|
* rewritten, a handle another agent answers to is never taken, and the body of
|
|
16
26
|
* the persona is never touched (core's `updateAgentFrontmatter` re-parses the
|
|
@@ -21,15 +31,18 @@
|
|
|
21
31
|
* be handed a catalog at construction.
|
|
22
32
|
*/
|
|
23
33
|
import type { CoreToolContext } from '@buddi/core';
|
|
24
|
-
import { type ToolRegistry, type PluginManifest } from '@buddi/core';
|
|
34
|
+
import { type ToolRegistry, type HttpArea, type PluginManifest } from '@buddi/core';
|
|
25
35
|
import type { AgentCatalog } from '../telegram/types.js';
|
|
26
|
-
/** Plugin family name. One manifest,
|
|
36
|
+
/** Plugin family name. One manifest, six tools, no tables of its own. */
|
|
27
37
|
export declare const OWNER_PLUGIN = "owner";
|
|
28
38
|
export interface OwnerToolsBinding {
|
|
29
39
|
/** Every agent installed here — for the rename: the file, and the handles. */
|
|
30
40
|
catalog: AgentCatalog;
|
|
31
41
|
/** Which surface this process is; recorded when onboarding completes. */
|
|
32
42
|
surface?: string;
|
|
43
|
+
/** The geocoder's road for places; a test hands in a stub. Default: Settings → Profile's. */
|
|
44
|
+
placesHttp?: HttpArea;
|
|
45
|
+
log?: (line: string) => void;
|
|
33
46
|
}
|
|
34
47
|
/** Wire a registry's owner tools once the catalog exists. */
|
|
35
48
|
export declare function bindOwnerTools(registry: ToolRegistry, binding: OwnerToolsBinding): void;
|
|
@@ -70,7 +83,7 @@ export declare const NOTIFY_TOOL = "owner.notify";
|
|
|
70
83
|
*/
|
|
71
84
|
export declare function interactiveTurn(ctx: CoreToolContext): boolean;
|
|
72
85
|
/**
|
|
73
|
-
* The
|
|
86
|
+
* The six tools. No state of its own: the profile and the state machine are
|
|
74
87
|
* core's rows, and the agent file is the one the catalog loaded.
|
|
75
88
|
*/
|
|
76
89
|
export declare function createOwnerManifest(registry: ToolRegistry): PluginManifest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-tools.d.ts","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"owner-tools.d.ts","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAKL,KAAK,YAAY,EAiBjB,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AAiBrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,yEAAyE;AACzE,eAAO,MAAM,YAAY,UAAU,CAAC;AAwEpC,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,OAAO,EAAE,YAAY,CAAC;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAID,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEvF;AAMD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAK+B,CAAC;AAElE,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASrE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAA4B,GAAG,OAAO,CAG/F;AAkHD,4FAA4F;AAC5F,eAAO,MAAM,WAAW,iBAAiB,CAAC;AA4C1C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAO7D;AA+BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CA2R1E"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { HANDLE, HANDLE_MAX, HANDLE_MIN, AgentEditError, completeOnboarding, getOnboarding, getOwnerProfile, isKnownTimezone, AGENT_ACTION_MAX, AGENT_TEXT_MAX, AGENT_TITLE_MAX, checkAgentLink, notifyFromAgent, markStepDone,
|
|
1
|
+
import { HANDLE, HANDLE_MAX, HANDLE_MIN, AgentEditError, completeOnboarding, getOnboarding, getOwnerProfile, isKnownTimezone, listOwnerPlaces, OWNER_DATE_FORMATS, OWNER_TIME_FORMATS, PLACE_ADDRESS_MAX, PLACE_LABEL_MAX, AGENT_ACTION_MAX, AGENT_TEXT_MAX, AGENT_TITLE_MAX, checkAgentLink, notifyFromAgent, markStepDone, updateAgentFrontmatter, ToolRefusal, } from '@buddi/core';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { EXAMPLES_AGENTS_DIR } from './catalog.js';
|
|
5
|
-
import {
|
|
6
|
-
/** Plugin family name. One manifest,
|
|
5
|
+
import { ASKED_PREFERENCE, DONT_ASK_PREFERENCE, PROFILE_FIELDS, PROFILE_GAP_REASONS, applyProfileEdit, checkPlaceEdits, checkProfilePatch, describeProfileEdit, profileGaps, } from '../owner-profile-edit.js';
|
|
6
|
+
/** Plugin family name. One manifest, six tools, no tables of its own. */
|
|
7
7
|
export const OWNER_PLUGIN = 'owner';
|
|
8
8
|
/**
|
|
9
9
|
* The sentence every description here ends with.
|
|
@@ -14,6 +14,55 @@ export const OWNER_PLUGIN = 'owner';
|
|
|
14
14
|
*/
|
|
15
15
|
const INTERVIEW_RULES = 'Ask one thing at a time and wait for the answer — never send a list of questions. ' +
|
|
16
16
|
'Never invent or record a preference the owner did not actually state.';
|
|
17
|
+
/** Whether a `set_profile` call forgets something: a cleared field or a removed place. */
|
|
18
|
+
function deletes(input) {
|
|
19
|
+
return (input.clear?.length ?? 0) > 0 || (input.removePlaces?.length ?? 0) > 0;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A `set_profile` call checked into the edit Settings → Profile would save,
|
|
23
|
+
* or the refusal the model is handed. Pure: `tierFor`, `describe` and
|
|
24
|
+
* `execute` each run it and reach the same answer.
|
|
25
|
+
*/
|
|
26
|
+
function prepareProfileEdit(input) {
|
|
27
|
+
if (input.timezone !== undefined && !isKnownTimezone(input.timezone)) {
|
|
28
|
+
return {
|
|
29
|
+
ok: false,
|
|
30
|
+
reason: 'unknown-timezone',
|
|
31
|
+
message: `"${input.timezone}" is not a timezone I know. Ask the owner which city they are in ` +
|
|
32
|
+
'and try again; nothing was recorded.',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const { places, removePlaces, clear, ...fields } = input;
|
|
36
|
+
// One address goes to the geocoder per call, never a batch of them.
|
|
37
|
+
if ((places?.length ?? 0) > 1) {
|
|
38
|
+
return {
|
|
39
|
+
ok: false,
|
|
40
|
+
reason: 'one-place',
|
|
41
|
+
message: 'One place per call: the place finder is asked once each time. Send them one by one; nothing was recorded.',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const body = { ...fields };
|
|
45
|
+
for (const field of clear ?? []) {
|
|
46
|
+
if (body[field] !== undefined) {
|
|
47
|
+
return { ok: false, reason: 'conflict', message: `${field} is both given and cleared; nothing was recorded.` };
|
|
48
|
+
}
|
|
49
|
+
body[field] = null;
|
|
50
|
+
}
|
|
51
|
+
// Settings → Profile's own checks and sentences.
|
|
52
|
+
const checked = checkProfilePatch(body);
|
|
53
|
+
if (!checked.ok) {
|
|
54
|
+
const reason = checked.error.startsWith('The birthday') ? 'unknown-day' : 'invalid';
|
|
55
|
+
return { ok: false, reason, message: `${checked.error} Ask the owner again; nothing was recorded.` };
|
|
56
|
+
}
|
|
57
|
+
const placeEdits = checkPlaceEdits(places ?? [], removePlaces ?? []);
|
|
58
|
+
if (!placeEdits.ok) {
|
|
59
|
+
return { ok: false, reason: 'invalid-place', message: `${placeEdits.error} Nothing was recorded.` };
|
|
60
|
+
}
|
|
61
|
+
if (Object.keys(checked.patch).length === 0 && placeEdits.places.length === 0 && placeEdits.remove.length === 0) {
|
|
62
|
+
return { ok: false, reason: 'nothing-to-do', message: 'Say which field changed; nothing was recorded.' };
|
|
63
|
+
}
|
|
64
|
+
return { ok: true, edit: { patch: checked.patch, places: placeEdits.places, remove: placeEdits.remove } };
|
|
65
|
+
}
|
|
17
66
|
/** The surface a completion is attributed to when the caller did not say. */
|
|
18
67
|
const UNKNOWN_SURFACE = 'agent';
|
|
19
68
|
const bindings = new WeakMap();
|
|
@@ -90,7 +139,7 @@ const setProfileInput = z
|
|
|
90
139
|
language: z
|
|
91
140
|
.string()
|
|
92
141
|
.min(1)
|
|
93
|
-
.max(
|
|
142
|
+
.max(80)
|
|
94
143
|
.optional()
|
|
95
144
|
.describe('The language they want to be answered in, if they said one. Never guessed from their spelling.'),
|
|
96
145
|
about: z
|
|
@@ -119,6 +168,40 @@ const setProfileInput = z
|
|
|
119
168
|
})
|
|
120
169
|
.optional()
|
|
121
170
|
.describe('Their birthday, when they said it: day and month, the year only if they gave it. Their team greets them on the day.'),
|
|
171
|
+
timeFormat: z
|
|
172
|
+
.enum(OWNER_TIME_FORMATS)
|
|
173
|
+
.optional()
|
|
174
|
+
.describe('How they read times: "12h" (2:05 PM) or "24h" (14:05). Only when they said.'),
|
|
175
|
+
dateFormat: z
|
|
176
|
+
.enum(OWNER_DATE_FORMATS)
|
|
177
|
+
.optional()
|
|
178
|
+
.describe('How they read dates: "short" (Thu, Oct 1), "long" (Thursday, 1 October) or "iso" (2026-10-01). Only when they said.'),
|
|
179
|
+
places: z
|
|
180
|
+
.array(z
|
|
181
|
+
.object({
|
|
182
|
+
label: z.string().min(1).max(PLACE_LABEL_MAX).describe('What they call it: "Home", "Work", "Mum\'s".'),
|
|
183
|
+
address: z
|
|
184
|
+
.string()
|
|
185
|
+
.min(2)
|
|
186
|
+
.max(PLACE_ADDRESS_MAX)
|
|
187
|
+
.describe('Where it is, as they said it: a street address or just the town ("Lyon", "12 rue Neuve, Lyon").'),
|
|
188
|
+
})
|
|
189
|
+
.strict())
|
|
190
|
+
.max(5)
|
|
191
|
+
.optional()
|
|
192
|
+
.describe('Places they told you about. Each address is looked up the way Settings → Profile does it and saved with ' +
|
|
193
|
+
'the town and its timezone; a place already called that is changed, not added twice. The answer says which ' +
|
|
194
|
+
'town it matched: tell them, so they can correct it.'),
|
|
195
|
+
removePlaces: z
|
|
196
|
+
.array(z.string().min(1).max(PLACE_LABEL_MAX))
|
|
197
|
+
.max(5)
|
|
198
|
+
.optional()
|
|
199
|
+
.describe('Labels of places they asked you to forget ("Work").'),
|
|
200
|
+
clear: z
|
|
201
|
+
.array(z.enum(PROFILE_FIELDS))
|
|
202
|
+
.max(PROFILE_FIELDS.length)
|
|
203
|
+
.optional()
|
|
204
|
+
.describe('Fields they asked you to forget. A cleared timeFormat or dateFormat goes back to Auto.'),
|
|
122
205
|
})
|
|
123
206
|
.strict();
|
|
124
207
|
const renameInput = z
|
|
@@ -192,29 +275,64 @@ export function interactiveTurn(ctx) {
|
|
|
192
275
|
(ctx.delegationDepth ?? 0) === 0);
|
|
193
276
|
}
|
|
194
277
|
/**
|
|
195
|
-
* The
|
|
278
|
+
* The "knowing you" record, from the two memory preferences the front desk
|
|
279
|
+
* keeps it in: which fields it already asked about (and when it last did),
|
|
280
|
+
* and which the owner said not to ask about. Shared or the caller's own; a
|
|
281
|
+
* database without memory answers nothing recorded.
|
|
282
|
+
*/
|
|
283
|
+
async function knowingYouRecord(ctx) {
|
|
284
|
+
try {
|
|
285
|
+
const { rows } = await ctx.db.query(`select key, value, created_at from memory.preferences
|
|
286
|
+
where key = any($1::text[]) and superseded_at is null
|
|
287
|
+
and (agent_scope is null or agent_scope = $2)
|
|
288
|
+
order by created_at desc`, [[ASKED_PREFERENCE, DONT_ASK_PREFERENCE], ctx.agentId ?? '']);
|
|
289
|
+
const of = (key) => rows.filter((r) => r.key === key);
|
|
290
|
+
const asked = of(ASKED_PREFERENCE);
|
|
291
|
+
const dontAsk = of(DONT_ASK_PREFERENCE);
|
|
292
|
+
const at = asked[0]?.created_at;
|
|
293
|
+
return {
|
|
294
|
+
asked: asked.length > 0 ? asked.map((r) => String(r.value)).join(', ') : null,
|
|
295
|
+
askedAt: at ? new Date(at) : null,
|
|
296
|
+
dontAsk: dontAsk.length > 0 ? dontAsk.map((r) => String(r.value)).join(', ') : null,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
return { asked: null, askedAt: null, dontAsk: null };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* The six tools. No state of its own: the profile and the state machine are
|
|
196
305
|
* core's rows, and the agent file is the one the catalog loaded.
|
|
197
306
|
*/
|
|
198
307
|
export function createOwnerManifest(registry) {
|
|
199
308
|
const bound = () => bindings.get(registry);
|
|
200
309
|
const getProfile = {
|
|
201
310
|
name: 'owner.get_profile',
|
|
202
|
-
description: 'What you already know about the owner: the name they asked to be called, their
|
|
203
|
-
'
|
|
311
|
+
description: 'What you already know about the owner: the name they asked to be called, their full name, ' +
|
|
312
|
+
'pronouns, timezone, language, birthday, time and date formats, their places, and which parts ' +
|
|
313
|
+
'of the first-run conversation are already done. ' +
|
|
204
314
|
'Call this before you ask anything — a question about something already recorded is the ' +
|
|
205
315
|
'one mistake a first conversation cannot afford. ' +
|
|
206
316
|
INTERVIEW_RULES,
|
|
207
317
|
tier: 'auto',
|
|
208
318
|
input: z.object({}).strict(),
|
|
209
319
|
async execute(_input, ctx) {
|
|
210
|
-
const [profile, onboarding] = await Promise.all([
|
|
320
|
+
const [profile, onboarding, places] = await Promise.all([
|
|
211
321
|
getOwnerProfile(ctx.db),
|
|
212
322
|
getOnboarding(ctx.db),
|
|
323
|
+
listOwnerPlaces(ctx.db).catch(() => []),
|
|
213
324
|
]);
|
|
214
325
|
return {
|
|
215
326
|
preferredName: profile.preferredName,
|
|
216
327
|
timezone: profile.timezone,
|
|
217
328
|
language: profile.language,
|
|
329
|
+
fullName: profile.fullName,
|
|
330
|
+
pronouns: profile.pronouns,
|
|
331
|
+
birthday: profile.birthday,
|
|
332
|
+
timeFormat: profile.timeFormat,
|
|
333
|
+
dateFormat: profile.dateFormat,
|
|
334
|
+
about: profile.about,
|
|
335
|
+
places: places.map((p) => ({ label: p.label, address: p.address, matched: p.name, timezone: p.timezone })),
|
|
218
336
|
onboarding: onboarding.state,
|
|
219
337
|
stepsDone: onboarding.stepsDone,
|
|
220
338
|
detectedTimezone: ctx.timezone,
|
|
@@ -223,43 +341,90 @@ export function createOwnerManifest(registry) {
|
|
|
223
341
|
};
|
|
224
342
|
const setProfile = {
|
|
225
343
|
name: 'owner.set_profile',
|
|
226
|
-
description: 'Record what the owner just told you about themselves: what to call them, their
|
|
227
|
-
'
|
|
228
|
-
'
|
|
229
|
-
'
|
|
344
|
+
description: 'Record what the owner just told you about themselves: what to call them, their full name, pronouns, ' +
|
|
345
|
+
'timezone, language, birthday, how they read times and dates, a line about them, and their places ' +
|
|
346
|
+
'(Home, Work, others). Write a field only when they actually said it, in this same conversation — this ' +
|
|
347
|
+
'is their profile, not your inference: never fill one from an email signature, a display name or a ' +
|
|
348
|
+
'guess. Pass only the fields that changed. Every agent reads it from its next turn. ' +
|
|
230
349
|
INTERVIEW_RULES,
|
|
231
350
|
tier: 'auto',
|
|
232
351
|
input: setProfileInput,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const { birthday: givenBirthday, ...rest } = input;
|
|
243
|
-
let birthday;
|
|
244
|
-
if (givenBirthday !== undefined) {
|
|
245
|
-
const valid = validDayMonth(givenBirthday);
|
|
246
|
-
if (!valid) {
|
|
247
|
-
return { ok: false, reason: 'unknown-day', message: 'That day does not exist. Ask the owner again; nothing was recorded.' };
|
|
248
|
-
}
|
|
249
|
-
birthday = valid;
|
|
352
|
+
/*
|
|
353
|
+
* A delete is the owner's to confirm: `clear` or `removePlaces` makes this
|
|
354
|
+
* call gated. A call that will be refused anyway stays auto, so the model
|
|
355
|
+
* hears the refusal at once instead of the owner seeing a card for nothing.
|
|
356
|
+
*/
|
|
357
|
+
async tierFor(input) {
|
|
358
|
+
const prepared = prepareProfileEdit(input);
|
|
359
|
+
if (prepared.ok && deletes(input)) {
|
|
360
|
+
return { tier: 'gated', reason: 'It forgets something you told buddi.' };
|
|
250
361
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
362
|
+
return { tier: 'auto' };
|
|
363
|
+
},
|
|
364
|
+
describe(input) {
|
|
365
|
+
const prepared = prepareProfileEdit(input);
|
|
366
|
+
if (!prepared.ok)
|
|
367
|
+
throw new ToolRefusal(prepared.message);
|
|
368
|
+
const edit = prepared.edit;
|
|
369
|
+
return {
|
|
370
|
+
envelope: { kind: 'profile_update', change: { profile: edit.patch, places: edit.places, removePlaces: edit.remove } },
|
|
371
|
+
preview: ['Change your profile:', ...describeProfileEdit(edit)].join('\n'),
|
|
372
|
+
};
|
|
373
|
+
},
|
|
374
|
+
async execute(input, ctx) {
|
|
375
|
+
const prepared = prepareProfileEdit(input);
|
|
376
|
+
if (!prepared.ok)
|
|
377
|
+
return prepared;
|
|
378
|
+
const edit = prepared.edit;
|
|
379
|
+
const binding = bound();
|
|
380
|
+
// The zone applies at once and schedules kept in the old one move with
|
|
381
|
+
// it; the birthday greeting follows a new day at once.
|
|
382
|
+
const outcome = await applyProfileEdit({
|
|
383
|
+
pool: ctx.db,
|
|
384
|
+
log: binding?.log ?? (() => undefined),
|
|
385
|
+
...(binding?.placesHttp ? { http: binding.placesHttp } : {}),
|
|
386
|
+
}, edit);
|
|
256
387
|
// The steps the shipped skill records. Free-form strings in core, so an
|
|
257
388
|
// owner's own first-run skill is free to record something else entirely.
|
|
258
389
|
if (input.preferredName !== undefined)
|
|
259
390
|
await markStepDone(ctx.db, 'name');
|
|
260
391
|
if (input.timezone !== undefined)
|
|
261
392
|
await markStepDone(ctx.db, 'timezone');
|
|
262
|
-
|
|
393
|
+
const changes = outcome.placeChanges;
|
|
394
|
+
return {
|
|
395
|
+
ok: true,
|
|
396
|
+
...outcome.profile,
|
|
397
|
+
...(changes
|
|
398
|
+
? {
|
|
399
|
+
places: outcome.places.map((p) => ({ label: p.label, address: p.address, matched: p.name, timezone: p.timezone })),
|
|
400
|
+
placesSaved: changes.saved,
|
|
401
|
+
...(changes.notSaved.length > 0 ? { placesNotSaved: changes.notSaved } : {}),
|
|
402
|
+
...(changes.removed.length > 0 ? { placesRemoved: changes.removed } : {}),
|
|
403
|
+
...(changes.notFound.length > 0 ? { placesNotFound: changes.notFound } : {}),
|
|
404
|
+
}
|
|
405
|
+
: {}),
|
|
406
|
+
message: 'Recorded. Every agent uses it from its next turn.',
|
|
407
|
+
};
|
|
408
|
+
},
|
|
409
|
+
};
|
|
410
|
+
const profileGapsTool = {
|
|
411
|
+
name: 'owner.profile_gaps',
|
|
412
|
+
description: "Which useful parts of the owner's profile are still empty, each with one line on why it matters " +
|
|
413
|
+
'(fullName: letters, forms and bookings; places.work: "how long to work?"). Each gap says whether it was ' +
|
|
414
|
+
`already asked in a "knowing you" question (the ${ASKED_PREFERENCE} preference) or declined (${DONT_ASK_PREFERENCE}); ` +
|
|
415
|
+
'nudge names the one field a weekly "knowing you" question may ask now, or null. A read: it asks nothing. ' +
|
|
416
|
+
'Ask for a gap only when the task in hand needs it, or as that one weekly question, never mid-task. ' +
|
|
417
|
+
INTERVIEW_RULES,
|
|
418
|
+
tier: 'auto',
|
|
419
|
+
input: z.object({}).strict(),
|
|
420
|
+
async execute(_input, ctx) {
|
|
421
|
+
const [profile, places, record] = await Promise.all([
|
|
422
|
+
getOwnerProfile(ctx.db),
|
|
423
|
+
listOwnerPlaces(ctx.db).catch(() => []),
|
|
424
|
+
knowingYouRecord(ctx),
|
|
425
|
+
]);
|
|
426
|
+
const gaps = profileGaps(profile, places, record, ctx.now());
|
|
427
|
+
return { ...gaps, filled: PROFILE_GAP_REASONS.length - gaps.gaps.length, of: PROFILE_GAP_REASONS.length };
|
|
263
428
|
},
|
|
264
429
|
};
|
|
265
430
|
const renameMe = {
|
|
@@ -404,7 +569,7 @@ export function createOwnerManifest(registry) {
|
|
|
404
569
|
// The rows are core's (migrations 013 and 043): this manifest only exposes them.
|
|
405
570
|
schema: 'core',
|
|
406
571
|
migrationsDir: '',
|
|
407
|
-
tools: [getProfile, setProfile, renameMe, finish, notify],
|
|
572
|
+
tools: [getProfile, setProfile, profileGapsTool, renameMe, finish, notify],
|
|
408
573
|
};
|
|
409
574
|
}
|
|
410
575
|
//# sourceMappingURL=owner-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-tools.js","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,EAEd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EAEb,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AACrB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,eAAe,GACnB,oFAAoF;IACpF,uEAAuE,CAAC;AAE1E,6EAA6E;AAC7E,MAAM,eAAe,GAAG,OAAO,CAAC;AAShC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAmC,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,QAAsB,EAAE,OAA0B;IAC/E,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;wEAEwE;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,uFAAuF;IACvF,oFAAoF;IACpF,oFAAoF;IACpF,qFAAqF;IACrF,+DAA+D,CAAC;AAElE,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU;QAAE,OAAO,2BAA2B,UAAU,aAAa,CAAC;IACvF,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU;QAAE,OAAO,2BAA2B,UAAU,aAAa,CAAC;IACvF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,+EAA+E;YACpF,6BAA6B,CAAC;IAClC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,cAAsB,mBAAmB;IACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrF,CAAC;AAED;;wEAEwE;AAExE,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,mFAAmF,CAAC;IAChG,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,oFAAoF;QAClF,uEAAuE,CAC1E;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,gGAAgG,CAAC;IAC7G,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6KAA6K,CAAC;IAC1L,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4GAA4G,CAAC;IACzH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KACtD,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,qHAAqH,CAAC;CACnI,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,2FAA2F;QACzF,6EAA6E,CAChF;CACJ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,4FAA4F;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,eAAe,CAAC;SACpB,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,cAAc,CAAC;SACnB,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,OAAO,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,QAAQ,CAAC,uFAAuF,CAAC;IACpG,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4FAA4F,CAAC;IACzG,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,gBAAgB,CAAC;SACrB,QAAQ,EAAE;SACV,QAAQ,CACP,+GAA+G;QAC7G,kHAAkH;QAClH,+FAA+F,CAClG;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,yFAAyF,CAAC;CACvG,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAoB;IAClD,OAAO,OAAO,CACZ,GAAG,CAAC,YAAY;QACd,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;QACvC,GAAG,CAAC,cAAc;QAClB,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC,CACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAsB;IACxD,MAAM,KAAK,GAAG,GAAkC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAmD;QACjE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,2FAA2F;YAC3F,0FAA0F;YAC1F,yFAAyF;YACzF,kDAAkD;YAClD,eAAe;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5B,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAoB;YACxC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;aACtB,CAAC,CAAC;YACH,OAAO;gBACL,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,gBAAgB,EAAE,GAAG,CAAC,QAAQ;aAC/B,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,UAAU,GAA6D;QAC3E,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,2FAA2F;YAC3F,2FAA2F;YAC3F,uFAAuF;YACvF,uBAAuB;YACvB,eAAe;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;QACtB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAoB;YACvC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrE,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,kBAAkB;oBAC1B,OAAO,EACL,IAAI,KAAK,CAAC,QAAQ,mEAAmE;wBACrF,sCAAsC;iBACzC,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;YACnD,IAAI,QAA8B,CAAC;YACnC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAC;gBAC9H,CAAC;gBACD,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,wEAAwE;YACxE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnG,gEAAgE;YAChE,IAAI,QAAQ;gBAAE,MAAM,YAAY,EAAE,CAAC;YACnC,wEAAwE;YACxE,yEAAyE;YACzE,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;gBAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACzE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QAClC,CAAC;KACF,CAAC;IAEF,MAAM,QAAQ,GAAyD;QACrE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,sFAAsF;YACtF,4FAA4F;YAC5F,2FAA2F;YAC3F,mFAAmF;YACnF,eAAe;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,WAAW;QAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAoB;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;YAC3F,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,6EAA6E;iBACvF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,+EAA+E;iBACzF,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;YAChF,CAAC;YAED,IAAI,MAA0B,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,uBAAuB,EAAE,CAAC;gBACzF,CAAC;gBACD,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,cAAc;wBACtB,OAAO,EACL,IAAI,MAAM,eAAe,KAAK,CAAC,IAAI,uDAAuD;qBAC7F,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;oBAChC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;iBAC5C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;oBAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/D,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI;gBACrC,MAAM,EAAE,GAAG;gBACX,OAAO,EACL,iEAAiE,GAAG,kBAAkB;oBACtF,0FAA0F;oBAC1F,uCAAuC;aAC1C,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAmD;QAC7D,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,0FAA0F;YAC1F,yFAAyF;YACzF,qFAAqF;YACrF,eAAe;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5B,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAoB;YACxC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC;YACzF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,UAAU,EAAE;oBACV,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B;gBACD,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,OAAO,EACL,2FAA2F;aAC9F,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAyD;QACnE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,kGAAkG;YAClG,qGAAqG;YACrG,wGAAwG;YACxG,4FAA4F;YAC5F,mGAAmG;QACrG,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,WAAW;QAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAoB;YACvC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,mDAAmD,EAAE,CAAC;YAC/G,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,OAAO;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,OAAO,EAAE,EAAE,CAAC;YAC/F,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACrF,OAAO;gBACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK;gBAC/B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC;aAClC,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,iFAAiF;QACjF,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"owner-tools.js","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,8 @@ export interface GoldenCase {
|
|
|
51
51
|
* the way the real one does for the situation the case pins.
|
|
52
52
|
*/
|
|
53
53
|
manifests?: () => PluginManifest[];
|
|
54
|
+
/** SQL run after the shared fixture, for a case that needs the owner in a given state. */
|
|
55
|
+
seed?: readonly string[];
|
|
54
56
|
/** Every failure, as a plain sentence. An empty array is a pass. */
|
|
55
57
|
check(turns: TurnRecord[]): string[];
|
|
56
58
|
}
|
|
@@ -81,6 +83,9 @@ export declare function minutesOf(input: {
|
|
|
81
83
|
end?: string;
|
|
82
84
|
duration?: number;
|
|
83
85
|
} | undefined): number | null;
|
|
86
|
+
/** The owner of the profile case: a name and a zone, no full name, the first run behind them. */
|
|
87
|
+
export declare const PROFILE_CASE_NAME = "Samuel Okafor";
|
|
88
|
+
export declare const PROFILE_CASE_SEED: string[];
|
|
84
89
|
export declare const GOLDEN_CASES: GoldenCase[];
|
|
85
90
|
export interface CaseResult {
|
|
86
91
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"golden.d.ts","sourceRoot":"","sources":["../../src/evals/golden.ts"],"names":[],"mappings":";AA6BA,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAgBrB,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,MAAmC,CAAC;AACzD,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAUhC;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAmBvB,CAAC;AAMF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,2GAA2G;IAC3G,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IACjD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC;IACnC,oEAAoE;IACpE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;CACtC;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,UAAU,CAAC;AAEpC,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,SAAS,YAAY,EAAkB,CAAC;AAE7E,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,YAAY,EACtB,KAAK,GAAE,SAAS,UAAU,EAAiB,GAC1C;IAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAiB/D;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAE7E;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAC5C,wBAAgB,mBAAmB,IAAI,cAAc,CAoCpD;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQ/G;
|
|
1
|
+
{"version":3,"file":"golden.d.ts","sourceRoot":"","sources":["../../src/evals/golden.ts"],"names":[],"mappings":"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"}
|
|
@@ -174,6 +174,18 @@ export function minutesOf(input) {
|
|
|
174
174
|
}
|
|
175
175
|
return null;
|
|
176
176
|
}
|
|
177
|
+
/** The owner of the profile case: a name and a zone, no full name, the first run behind them. */
|
|
178
|
+
export const PROFILE_CASE_NAME = 'Samuel Okafor';
|
|
179
|
+
export const PROFILE_CASE_SEED = [
|
|
180
|
+
`insert into core.owner (id, preferred_name, timezone) values ('owner', 'Sam', 'UTC')
|
|
181
|
+
on conflict (id) do update set preferred_name = 'Sam', timezone = 'UTC', full_name = null`,
|
|
182
|
+
`insert into core.onboarding (owner_id, state, started_at, completed_at, surface)
|
|
183
|
+
values ('owner', 'done', now(), now(), 'web')
|
|
184
|
+
on conflict (owner_id) do update set state = 'done', completed_at = now()`,
|
|
185
|
+
`delete from core.owner_places`,
|
|
186
|
+
];
|
|
187
|
+
const ASKS_FULL_NAME = /full name|your (?:last|sur)name|name (?:should|to) (?:i )?(?:sign|put)|sign (?:it|off) (?:with|as)/i;
|
|
188
|
+
const questions = (text) => (text.match(/\?/g) ?? []).length;
|
|
177
189
|
const ASKS_WHICH_CALENDAR = /which calendar|what calendar|which of your calendars/i;
|
|
178
190
|
const STATES_TWO_HOURS = /\b(?:2|two)[ -]?(?:hours?|h)\b|2-hour|two-hour/i;
|
|
179
191
|
export const GOLDEN_CASES = [
|
|
@@ -444,6 +456,40 @@ export const GOLDEN_CASES = [
|
|
|
444
456
|
return fails;
|
|
445
457
|
},
|
|
446
458
|
},
|
|
459
|
+
{
|
|
460
|
+
id: 'one-writable-field-asked-once',
|
|
461
|
+
guards: 'A letter needs the full name the profile lacks: the front desk asks once, one question, records the answer with ' +
|
|
462
|
+
'owner.set_profile, signs with it, and never asks again for the next letter.',
|
|
463
|
+
agent: 'concierge',
|
|
464
|
+
seed: PROFILE_CASE_SEED,
|
|
465
|
+
turns: [
|
|
466
|
+
{ question: "Write a short letter to my landlord saying I'll be away for all of November." },
|
|
467
|
+
{ question: PROFILE_CASE_NAME },
|
|
468
|
+
{ question: 'Thanks. Now a two-line note to my bank saying the same.' },
|
|
469
|
+
],
|
|
470
|
+
check([ask, answer, again]) {
|
|
471
|
+
const fails = [];
|
|
472
|
+
const setsName = (turn) => called(turn, 'owner.set_profile').filter((c) => typeof c.input?.fullName === 'string');
|
|
473
|
+
if (!ASKS_FULL_NAME.test(ask?.text ?? ''))
|
|
474
|
+
fails.push('did not ask for the full name the letter needs');
|
|
475
|
+
if (questions(ask?.text ?? '') > 1)
|
|
476
|
+
fails.push('asked more than one question at once');
|
|
477
|
+
if (setsName(ask).length > 0)
|
|
478
|
+
fails.push('recorded a full name the owner had not said');
|
|
479
|
+
const recorded = setsName(answer);
|
|
480
|
+
if (recorded.length === 0)
|
|
481
|
+
fails.push('never recorded the full name once the owner said it');
|
|
482
|
+
else if (String(recorded[0].input.fullName).trim() !== PROFILE_CASE_NAME)
|
|
483
|
+
fails.push(`recorded "${recorded[0].input.fullName}", not what the owner said`);
|
|
484
|
+
if (!(answer?.text ?? '').includes(PROFILE_CASE_NAME))
|
|
485
|
+
fails.push('did not sign the letter with the full name');
|
|
486
|
+
if (ASKS_FULL_NAME.test(again?.text ?? ''))
|
|
487
|
+
fails.push('asked for the full name a second time');
|
|
488
|
+
if (!(again?.text ?? '').includes(PROFILE_CASE_NAME))
|
|
489
|
+
fails.push('did not use the recorded full name in the next note');
|
|
490
|
+
return fails;
|
|
491
|
+
},
|
|
492
|
+
},
|
|
447
493
|
];
|
|
448
494
|
const ESC = '\u001b[';
|
|
449
495
|
const yellow = (s) => `${ESC}33m${s}${ESC}0m`;
|
|
@@ -577,6 +623,8 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
577
623
|
const standIns = [];
|
|
578
624
|
for (const testCase of cases) {
|
|
579
625
|
await reseed(pool);
|
|
626
|
+
for (const statement of testCase.seed ?? [])
|
|
627
|
+
await pool.query(statement);
|
|
580
628
|
const started = Date.now();
|
|
581
629
|
const result = {
|
|
582
630
|
id: testCase.id,
|