artemys 0.2.0 → 0.2.1
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/CHANGELOG.md +23 -0
- package/README.md +194 -146
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +446 -379
- package/dist/cli/index.js.map +1 -1
- package/dist/coffeeshop/client.d.ts +158 -0
- package/dist/coffeeshop/client.d.ts.map +1 -0
- package/dist/coffeeshop/client.js +293 -0
- package/dist/coffeeshop/client.js.map +1 -0
- package/dist/coffeeshop/index.d.ts +2 -0
- package/dist/coffeeshop/index.d.ts.map +1 -0
- package/dist/coffeeshop/index.js +2 -0
- package/dist/coffeeshop/index.js.map +1 -0
- package/dist/discovery/agent-card.schema.d.ts +37 -109
- package/dist/discovery/agent-card.schema.d.ts.map +1 -1
- package/dist/discovery/discovery-query.schema.d.ts +6 -15
- package/dist/discovery/discovery-query.schema.d.ts.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/intro-decision.schema.d.ts +9 -11
- package/dist/discovery/intro-decision.schema.d.ts.map +1 -1
- package/dist/discovery/intro-request.schema.d.ts +2 -14
- package/dist/discovery/intro-request.schema.d.ts.map +1 -1
- package/dist/discovery/session-bootstrap.schema.d.ts +86 -66
- package/dist/discovery/session-bootstrap.schema.d.ts.map +1 -1
- package/dist/discovery/session-bootstrap.schema.js +84 -8
- package/dist/discovery/session-bootstrap.schema.js.map +1 -1
- package/dist/mcp-server/index.d.ts +4 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +4 -0
- package/dist/mcp-server/index.js.map +1 -0
- package/dist/mcp-server/persistence.d.ts +37 -0
- package/dist/mcp-server/persistence.d.ts.map +1 -0
- package/dist/mcp-server/persistence.js +309 -0
- package/dist/mcp-server/persistence.js.map +1 -0
- package/dist/mcp-server/resources.d.ts +20 -0
- package/dist/mcp-server/resources.d.ts.map +1 -0
- package/dist/mcp-server/resources.js +49 -0
- package/dist/mcp-server/resources.js.map +1 -0
- package/dist/mcp-server/server.d.ts +33 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +220 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/state.d.ts +43 -0
- package/dist/mcp-server/state.d.ts.map +1 -0
- package/dist/mcp-server/state.js +111 -0
- package/dist/mcp-server/state.js.map +1 -0
- package/dist/mcp-server/tools/common.d.ts +225 -0
- package/dist/mcp-server/tools/common.d.ts.map +1 -0
- package/dist/mcp-server/tools/common.js +11 -0
- package/dist/mcp-server/tools/common.js.map +1 -0
- package/dist/mcp-server/tools/discovery.d.ts +3 -0
- package/dist/mcp-server/tools/discovery.d.ts.map +1 -0
- package/dist/mcp-server/tools/discovery.js +48 -0
- package/dist/mcp-server/tools/discovery.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +4 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +13 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/intro.d.ts +3 -0
- package/dist/mcp-server/tools/intro.d.ts.map +1 -0
- package/dist/mcp-server/tools/intro.js +53 -0
- package/dist/mcp-server/tools/intro.js.map +1 -0
- package/dist/mcp-server/tools/protocol.d.ts +3 -0
- package/dist/mcp-server/tools/protocol.d.ts.map +1 -0
- package/dist/mcp-server/tools/protocol.js +73 -0
- package/dist/mcp-server/tools/protocol.js.map +1 -0
- package/dist/mcp-server/tools/talent.d.ts +3 -0
- package/dist/mcp-server/tools/talent.d.ts.map +1 -0
- package/dist/mcp-server/tools/talent.js +226 -0
- package/dist/mcp-server/tools/talent.js.map +1 -0
- package/dist/openclaw/index.d.ts +2 -0
- package/dist/openclaw/index.d.ts.map +1 -0
- package/dist/openclaw/index.js +2 -0
- package/dist/openclaw/index.js.map +1 -0
- package/dist/openclaw/skill.d.ts +13 -0
- package/dist/openclaw/skill.d.ts.map +1 -0
- package/dist/openclaw/skill.js +18 -0
- package/dist/openclaw/skill.js.map +1 -0
- package/dist/protocol/consent.schema.d.ts +18 -48
- package/dist/protocol/consent.schema.d.ts.map +1 -1
- package/dist/protocol/consent.schema.js +1 -1
- package/dist/protocol/consent.schema.js.map +1 -1
- package/dist/protocol/dialogue.schema.d.ts +21 -177
- package/dist/protocol/dialogue.schema.d.ts.map +1 -1
- package/dist/protocol/envelope.schema.d.ts +46 -28
- package/dist/protocol/envelope.schema.d.ts.map +1 -1
- package/dist/protocol/errors.d.ts +8 -1
- package/dist/protocol/errors.d.ts.map +1 -1
- package/dist/protocol/handshake.schema.d.ts +130 -385
- package/dist/protocol/handshake.schema.d.ts.map +1 -1
- package/dist/protocol/handshake.schema.js +1 -0
- package/dist/protocol/handshake.schema.js.map +1 -1
- package/dist/protocol/identity.schema.d.ts +44 -94
- package/dist/protocol/identity.schema.d.ts.map +1 -1
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/message-types.d.ts +14 -1
- package/dist/protocol/message-types.d.ts.map +1 -1
- package/dist/protocol/message.schema.d.ts +100 -715
- package/dist/protocol/message.schema.d.ts.map +1 -1
- package/dist/protocol/resolution.schema.d.ts +22 -268
- package/dist/protocol/resolution.schema.d.ts.map +1 -1
- package/dist/protocol/resolution.schema.js +1 -1
- package/dist/protocol/resolution.schema.js.map +1 -1
- package/dist/protocol/state-machine.d.ts +10 -1
- package/dist/protocol/state-machine.d.ts.map +1 -1
- package/dist/protocol/talent.schema.d.ts +106 -0
- package/dist/protocol/talent.schema.d.ts.map +1 -0
- package/dist/protocol/talent.schema.js +47 -0
- package/dist/protocol/talent.schema.js.map +1 -0
- package/dist/protocol/transport.schema.d.ts +16 -18
- package/dist/protocol/transport.schema.d.ts.map +1 -1
- package/dist/transport/client.d.ts +32 -0
- package/dist/transport/client.d.ts.map +1 -0
- package/dist/transport/client.js +155 -0
- package/dist/transport/client.js.map +1 -0
- package/dist/transport/dedup.d.ts +9 -0
- package/dist/transport/dedup.d.ts.map +1 -0
- package/dist/transport/dedup.js +36 -0
- package/dist/transport/dedup.js.map +1 -0
- package/dist/transport/handler.d.ts +9 -0
- package/dist/transport/handler.d.ts.map +1 -0
- package/dist/transport/handler.js +105 -0
- package/dist/transport/handler.js.map +1 -0
- package/dist/transport/hmac.d.ts +3 -0
- package/dist/transport/hmac.d.ts.map +1 -0
- package/dist/transport/hmac.js +43 -0
- package/dist/transport/hmac.js.map +1 -0
- package/dist/transport/index.d.ts +6 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +6 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/reference-runner.d.ts +37 -0
- package/dist/transport/reference-runner.d.ts.map +1 -0
- package/dist/transport/reference-runner.js +372 -0
- package/dist/transport/reference-runner.js.map +1 -0
- package/package.json +19 -31
- package/dist/agent/archiver.d.ts +0 -8
- package/dist/agent/archiver.d.ts.map +0 -1
- package/dist/agent/archiver.js +0 -48
- package/dist/agent/archiver.js.map +0 -1
- package/dist/agent/capabilities.d.ts +0 -23
- package/dist/agent/capabilities.d.ts.map +0 -1
- package/dist/agent/capabilities.js +0 -87
- package/dist/agent/capabilities.js.map +0 -1
- package/dist/agent/config.d.ts +0 -60
- package/dist/agent/config.d.ts.map +0 -1
- package/dist/agent/config.js +0 -84
- package/dist/agent/config.js.map +0 -1
- package/dist/agent/context-provider.d.ts +0 -12
- package/dist/agent/context-provider.d.ts.map +0 -1
- package/dist/agent/context-provider.js +0 -34
- package/dist/agent/context-provider.js.map +0 -1
- package/dist/agent/context.d.ts +0 -9
- package/dist/agent/context.d.ts.map +0 -1
- package/dist/agent/context.js +0 -80
- package/dist/agent/context.js.map +0 -1
- package/dist/agent/events.d.ts +0 -62
- package/dist/agent/events.d.ts.map +0 -1
- package/dist/agent/events.js +0 -21
- package/dist/agent/events.js.map +0 -1
- package/dist/agent/index.d.ts +0 -32
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -28
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/mcp.d.ts +0 -16
- package/dist/agent/mcp.d.ts.map +0 -1
- package/dist/agent/mcp.js +0 -69
- package/dist/agent/mcp.js.map +0 -1
- package/dist/agent/notifications/decision-parser.d.ts +0 -10
- package/dist/agent/notifications/decision-parser.d.ts.map +0 -1
- package/dist/agent/notifications/decision-parser.js +0 -21
- package/dist/agent/notifications/decision-parser.js.map +0 -1
- package/dist/agent/notifications/index.d.ts +0 -4
- package/dist/agent/notifications/index.d.ts.map +0 -1
- package/dist/agent/notifications/index.js +0 -3
- package/dist/agent/notifications/index.js.map +0 -1
- package/dist/agent/notifications/opportunity-templates.d.ts +0 -14
- package/dist/agent/notifications/opportunity-templates.d.ts.map +0 -1
- package/dist/agent/notifications/opportunity-templates.js +0 -21
- package/dist/agent/notifications/opportunity-templates.js.map +0 -1
- package/dist/agent/notifications/types.d.ts +0 -16
- package/dist/agent/notifications/types.d.ts.map +0 -1
- package/dist/agent/notifications/types.js +0 -2
- package/dist/agent/notifications/types.js.map +0 -1
- package/dist/agent/providers.d.ts +0 -9
- package/dist/agent/providers.d.ts.map +0 -1
- package/dist/agent/providers.js +0 -29
- package/dist/agent/providers.js.map +0 -1
- package/dist/agent/runtime.d.ts +0 -63
- package/dist/agent/runtime.d.ts.map +0 -1
- package/dist/agent/runtime.js +0 -395
- package/dist/agent/runtime.js.map +0 -1
- package/dist/agent/scanning/index.d.ts +0 -3
- package/dist/agent/scanning/index.d.ts.map +0 -1
- package/dist/agent/scanning/index.js +0 -3
- package/dist/agent/scanning/index.js.map +0 -1
- package/dist/agent/scanning/opportunity-scorer.d.ts +0 -24
- package/dist/agent/scanning/opportunity-scorer.d.ts.map +0 -1
- package/dist/agent/scanning/opportunity-scorer.js +0 -90
- package/dist/agent/scanning/opportunity-scorer.js.map +0 -1
- package/dist/agent/scanning/types.d.ts +0 -65
- package/dist/agent/scanning/types.d.ts.map +0 -1
- package/dist/agent/scanning/types.js +0 -32
- package/dist/agent/scanning/types.js.map +0 -1
- package/dist/agent/scheduler.d.ts +0 -38
- package/dist/agent/scheduler.d.ts.map +0 -1
- package/dist/agent/scheduler.js +0 -125
- package/dist/agent/scheduler.js.map +0 -1
- package/dist/agent/session.d.ts +0 -20
- package/dist/agent/session.d.ts.map +0 -1
- package/dist/agent/session.js +0 -88
- package/dist/agent/session.js.map +0 -1
- package/dist/agent/stores.d.ts +0 -48
- package/dist/agent/stores.d.ts.map +0 -1
- package/dist/agent/stores.js +0 -2
- package/dist/agent/stores.js.map +0 -1
- package/dist/agent/tools/browser/ats-patterns.d.ts +0 -20
- package/dist/agent/tools/browser/ats-patterns.d.ts.map +0 -1
- package/dist/agent/tools/browser/ats-patterns.js +0 -226
- package/dist/agent/tools/browser/ats-patterns.js.map +0 -1
- package/dist/agent/tools/browser/index.d.ts +0 -14
- package/dist/agent/tools/browser/index.d.ts.map +0 -1
- package/dist/agent/tools/browser/index.js +0 -126
- package/dist/agent/tools/browser/index.js.map +0 -1
- package/dist/agent/tools/browser/operator-runtime.d.ts +0 -35
- package/dist/agent/tools/browser/operator-runtime.d.ts.map +0 -1
- package/dist/agent/tools/browser/operator-runtime.js +0 -93
- package/dist/agent/tools/browser/operator-runtime.js.map +0 -1
- package/dist/agent/tools/browser/providers/chrome-mcp.d.ts +0 -3
- package/dist/agent/tools/browser/providers/chrome-mcp.d.ts.map +0 -1
- package/dist/agent/tools/browser/providers/chrome-mcp.js +0 -164
- package/dist/agent/tools/browser/providers/chrome-mcp.js.map +0 -1
- package/dist/agent/tools/browser/providers/playwright.d.ts +0 -7
- package/dist/agent/tools/browser/providers/playwright.d.ts.map +0 -1
- package/dist/agent/tools/browser/providers/playwright.js +0 -619
- package/dist/agent/tools/browser/providers/playwright.js.map +0 -1
- package/dist/agent/tools/browser/types.d.ts +0 -22
- package/dist/agent/tools/browser/types.d.ts.map +0 -1
- package/dist/agent/tools/browser/types.js +0 -15
- package/dist/agent/tools/browser/types.js.map +0 -1
- package/dist/agent/tools/cancel-task.d.ts +0 -4
- package/dist/agent/tools/cancel-task.d.ts.map +0 -1
- package/dist/agent/tools/cancel-task.js +0 -29
- package/dist/agent/tools/cancel-task.js.map +0 -1
- package/dist/agent/tools/career-advice.d.ts +0 -3
- package/dist/agent/tools/career-advice.d.ts.map +0 -1
- package/dist/agent/tools/career-advice.js +0 -49
- package/dist/agent/tools/career-advice.js.map +0 -1
- package/dist/agent/tools/index.d.ts +0 -15
- package/dist/agent/tools/index.d.ts.map +0 -1
- package/dist/agent/tools/index.js +0 -94
- package/dist/agent/tools/index.js.map +0 -1
- package/dist/agent/tools/job-search.d.ts +0 -3
- package/dist/agent/tools/job-search.d.ts.map +0 -1
- package/dist/agent/tools/job-search.js +0 -77
- package/dist/agent/tools/job-search.js.map +0 -1
- package/dist/agent/tools/list-tasks.d.ts +0 -4
- package/dist/agent/tools/list-tasks.d.ts.map +0 -1
- package/dist/agent/tools/list-tasks.js +0 -24
- package/dist/agent/tools/list-tasks.js.map +0 -1
- package/dist/agent/tools/market-data.d.ts +0 -8
- package/dist/agent/tools/market-data.d.ts.map +0 -1
- package/dist/agent/tools/market-data.js +0 -133
- package/dist/agent/tools/market-data.js.map +0 -1
- package/dist/agent/tools/memory-write.d.ts +0 -3
- package/dist/agent/tools/memory-write.d.ts.map +0 -1
- package/dist/agent/tools/memory-write.js +0 -48
- package/dist/agent/tools/memory-write.js.map +0 -1
- package/dist/agent/tools/resume.d.ts +0 -3
- package/dist/agent/tools/resume.d.ts.map +0 -1
- package/dist/agent/tools/resume.js +0 -70
- package/dist/agent/tools/resume.js.map +0 -1
- package/dist/agent/tools/schedule-task.d.ts +0 -4
- package/dist/agent/tools/schedule-task.d.ts.map +0 -1
- package/dist/agent/tools/schedule-task.js +0 -39
- package/dist/agent/tools/schedule-task.js.map +0 -1
- package/dist/agent/tools/shell.d.ts +0 -6
- package/dist/agent/tools/shell.d.ts.map +0 -1
- package/dist/agent/tools/shell.js +0 -66
- package/dist/agent/tools/shell.js.map +0 -1
- package/dist/agent/tools/web-search.d.ts +0 -6
- package/dist/agent/tools/web-search.d.ts.map +0 -1
- package/dist/agent/tools/web-search.js +0 -73
- package/dist/agent/tools/web-search.js.map +0 -1
- package/dist/agent/types.d.ts +0 -103
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -11
- package/dist/agent/types.js.map +0 -1
- package/dist/channels/index.d.ts +0 -10
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/channels/index.js +0 -15
- package/dist/channels/index.js.map +0 -1
- package/dist/channels/telegram.d.ts +0 -21
- package/dist/channels/telegram.d.ts.map +0 -1
- package/dist/channels/telegram.js +0 -255
- package/dist/channels/telegram.js.map +0 -1
- package/dist/channels/types.d.ts +0 -24
- package/dist/channels/types.d.ts.map +0 -1
- package/dist/channels/types.js +0 -2
- package/dist/channels/types.js.map +0 -1
- package/dist/cli/templates/HEARTBEAT.md +0 -6
- package/dist/cli/templates/MEMORY.md +0 -6
- package/dist/cli/templates/PREFERENCES.md +0 -40
- package/dist/cli/templates/PROFILE.md +0 -26
- package/dist/cli/templates/SOUL.md +0 -23
- package/dist/connectors/google-calendar.d.ts +0 -8
- package/dist/connectors/google-calendar.d.ts.map +0 -1
- package/dist/connectors/google-calendar.js +0 -23
- package/dist/connectors/google-calendar.js.map +0 -1
- package/dist/connectors/google-gmail.d.ts +0 -8
- package/dist/connectors/google-gmail.d.ts.map +0 -1
- package/dist/connectors/google-gmail.js +0 -30
- package/dist/connectors/google-gmail.js.map +0 -1
- package/dist/connectors/google-oauth.d.ts +0 -17
- package/dist/connectors/google-oauth.d.ts.map +0 -1
- package/dist/connectors/google-oauth.js +0 -52
- package/dist/connectors/google-oauth.js.map +0 -1
- package/dist/connectors/index.d.ts +0 -5
- package/dist/connectors/index.d.ts.map +0 -1
- package/dist/connectors/index.js +0 -5
- package/dist/connectors/index.js.map +0 -1
- package/dist/connectors/types.d.ts +0 -20
- package/dist/connectors/types.d.ts.map +0 -1
- package/dist/connectors/types.js +0 -5
- package/dist/connectors/types.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/scanning/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,kCAAkC,EAClC,WAAW,GAEZ,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,4BAA4B,GAI7B,MAAM,YAAY,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export type ScoringPreferences = {
|
|
2
|
-
targetRoles: string[];
|
|
3
|
-
preferredLocations: string[];
|
|
4
|
-
salaryMinUsd: number | null;
|
|
5
|
-
};
|
|
6
|
-
declare function matchesRole(preferences: ScoringPreferences, title: string): boolean;
|
|
7
|
-
export declare function parseOpportunitySalaryFloor(salary: string | null): number | null;
|
|
8
|
-
export declare function scoreOpportunity(input: {
|
|
9
|
-
preferences: ScoringPreferences;
|
|
10
|
-
title: string;
|
|
11
|
-
location: string;
|
|
12
|
-
postedAt: Date | null;
|
|
13
|
-
salary: string | null;
|
|
14
|
-
}): {
|
|
15
|
-
score: number;
|
|
16
|
-
metadata: Record<string, unknown>;
|
|
17
|
-
};
|
|
18
|
-
export declare function resolveSuggestedStatus(score: number): "discovered" | "shortlisted";
|
|
19
|
-
export declare function shouldAttemptShortlistNotification(input: {
|
|
20
|
-
suggestedStatus: "discovered" | "shortlisted";
|
|
21
|
-
currentStatus: string | null | undefined;
|
|
22
|
-
}): boolean;
|
|
23
|
-
export { matchesRole };
|
|
24
|
-
//# sourceMappingURL=opportunity-scorer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opportunity-scorer.d.ts","sourceRoot":"","sources":["../../../src/agent/scanning/opportunity-scorer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAAA;AAUD,iBAAS,WAAW,CAAC,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAiB5E;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAShF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAsDvD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAElF;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,eAAe,EAAE,YAAY,GAAG,aAAa,CAAA;IAC7C,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACzC,GAAG,OAAO,CAUV;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
function tokenizeRoleText(value) {
|
|
2
|
-
return value
|
|
3
|
-
.toLowerCase()
|
|
4
|
-
.split(/[^a-z0-9]+/g)
|
|
5
|
-
.map((token) => token.trim())
|
|
6
|
-
.filter((token) => token.length >= 3);
|
|
7
|
-
}
|
|
8
|
-
function matchesRole(preferences, title) {
|
|
9
|
-
const normalizedTitle = title.toLowerCase();
|
|
10
|
-
const roleTokens = new Set(preferences.targetRoles.flatMap((role) => tokenizeRoleText(role)));
|
|
11
|
-
if (roleTokens.size === 0) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
for (const token of roleTokens) {
|
|
15
|
-
if (normalizedTitle.includes(token)) {
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
export function parseOpportunitySalaryFloor(salary) {
|
|
22
|
-
if (!salary)
|
|
23
|
-
return null;
|
|
24
|
-
const cleaned = salary.replace(/,/g, "");
|
|
25
|
-
const matched = cleaned.match(/\$\s*(\d+(?:\.\d+)?)\s*k?/i);
|
|
26
|
-
if (!matched)
|
|
27
|
-
return null;
|
|
28
|
-
const base = Number.parseFloat(matched[1] ?? "");
|
|
29
|
-
if (!Number.isFinite(base))
|
|
30
|
-
return null;
|
|
31
|
-
return /k/i.test(matched[0]) ? Math.round(base * 1000) : Math.round(base);
|
|
32
|
-
}
|
|
33
|
-
export function scoreOpportunity(input) {
|
|
34
|
-
let score = 0;
|
|
35
|
-
const roleMatch = matchesRole(input.preferences, input.title);
|
|
36
|
-
if (roleMatch) {
|
|
37
|
-
score += 45;
|
|
38
|
-
}
|
|
39
|
-
const preferredLocations = input.preferences.preferredLocations.map((item) => item.toLowerCase());
|
|
40
|
-
const normalizedLocation = input.location.toLowerCase();
|
|
41
|
-
const locationMatch = preferredLocations.length === 0 ||
|
|
42
|
-
preferredLocations.some((item) => normalizedLocation.includes(item.toLowerCase())) ||
|
|
43
|
-
normalizedLocation.includes("remote") ||
|
|
44
|
-
normalizedLocation.includes("worldwide");
|
|
45
|
-
if (locationMatch) {
|
|
46
|
-
score += 20;
|
|
47
|
-
}
|
|
48
|
-
const salaryFloor = parseOpportunitySalaryFloor(input.salary);
|
|
49
|
-
const salaryMatch = salaryFloor !== null && input.preferences.salaryMinUsd !== null
|
|
50
|
-
? salaryFloor >= input.preferences.salaryMinUsd
|
|
51
|
-
: salaryFloor !== null;
|
|
52
|
-
if (salaryMatch) {
|
|
53
|
-
score += 15;
|
|
54
|
-
}
|
|
55
|
-
const ageDays = input.postedAt
|
|
56
|
-
? Math.floor((Date.now() - input.postedAt.getTime()) / (24 * 60 * 60 * 1000))
|
|
57
|
-
: null;
|
|
58
|
-
if (ageDays !== null) {
|
|
59
|
-
if (ageDays <= 3) {
|
|
60
|
-
score += 20;
|
|
61
|
-
}
|
|
62
|
-
else if (ageDays <= 7) {
|
|
63
|
-
score += 10;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
score: Math.min(100, score),
|
|
68
|
-
metadata: {
|
|
69
|
-
roleMatch,
|
|
70
|
-
locationMatch,
|
|
71
|
-
salaryFloor,
|
|
72
|
-
salaryMatch,
|
|
73
|
-
ageDays,
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
export function resolveSuggestedStatus(score) {
|
|
78
|
-
return score >= 70 ? "shortlisted" : "discovered";
|
|
79
|
-
}
|
|
80
|
-
export function shouldAttemptShortlistNotification(input) {
|
|
81
|
-
if (input.suggestedStatus !== "shortlisted") {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
if (!input.currentStatus) {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
return input.currentStatus === "discovered" || input.currentStatus === "shortlisted";
|
|
88
|
-
}
|
|
89
|
-
export { matchesRole };
|
|
90
|
-
//# sourceMappingURL=opportunity-scorer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opportunity-scorer.js","sourceRoot":"","sources":["../../../src/agent/scanning/opportunity-scorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const OpportunityStatusSchema: z.ZodEnum<["discovered", "shortlisted", "notified", "viewed", "applied", "passed", "archived"]>;
|
|
3
|
-
export type OpportunityStatus = z.infer<typeof OpportunityStatusSchema>;
|
|
4
|
-
export declare const ScanCandidateOpportunitySchema: z.ZodObject<{
|
|
5
|
-
source: z.ZodEnum<["remotive", "greenhouse", "lever", "ashby", "jsonld"]>;
|
|
6
|
-
sourceOpportunityId: z.ZodNullable<z.ZodString>;
|
|
7
|
-
dedupeKey: z.ZodString;
|
|
8
|
-
title: z.ZodString;
|
|
9
|
-
company: z.ZodString;
|
|
10
|
-
location: z.ZodString;
|
|
11
|
-
url: z.ZodNullable<z.ZodString>;
|
|
12
|
-
salary: z.ZodNullable<z.ZodString>;
|
|
13
|
-
summary: z.ZodString;
|
|
14
|
-
postedAt: z.ZodNullable<z.ZodDate>;
|
|
15
|
-
score: z.ZodNumber;
|
|
16
|
-
scoreMetadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
17
|
-
metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
18
|
-
}, "strip", z.ZodTypeAny, {
|
|
19
|
-
source: "ashby" | "greenhouse" | "lever" | "remotive" | "jsonld";
|
|
20
|
-
title: string;
|
|
21
|
-
location: string;
|
|
22
|
-
url: string | null;
|
|
23
|
-
summary: string;
|
|
24
|
-
metadata: Record<string, unknown>;
|
|
25
|
-
sourceOpportunityId: string | null;
|
|
26
|
-
dedupeKey: string;
|
|
27
|
-
company: string;
|
|
28
|
-
salary: string | null;
|
|
29
|
-
postedAt: Date | null;
|
|
30
|
-
score: number;
|
|
31
|
-
scoreMetadata: Record<string, unknown>;
|
|
32
|
-
}, {
|
|
33
|
-
source: "ashby" | "greenhouse" | "lever" | "remotive" | "jsonld";
|
|
34
|
-
title: string;
|
|
35
|
-
location: string;
|
|
36
|
-
url: string | null;
|
|
37
|
-
summary: string;
|
|
38
|
-
metadata: Record<string, unknown>;
|
|
39
|
-
sourceOpportunityId: string | null;
|
|
40
|
-
dedupeKey: string;
|
|
41
|
-
company: string;
|
|
42
|
-
salary: string | null;
|
|
43
|
-
postedAt: Date | null;
|
|
44
|
-
score: number;
|
|
45
|
-
scoreMetadata: Record<string, unknown>;
|
|
46
|
-
}>;
|
|
47
|
-
export type ScanCandidateOpportunity = z.infer<typeof ScanCandidateOpportunitySchema>;
|
|
48
|
-
export declare const OpportunityScanSummarySchema: z.ZodObject<{
|
|
49
|
-
scanned: z.ZodNumber;
|
|
50
|
-
created: z.ZodNumber;
|
|
51
|
-
updated: z.ZodNumber;
|
|
52
|
-
notified: z.ZodNumber;
|
|
53
|
-
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
notified: number;
|
|
55
|
-
scanned: number;
|
|
56
|
-
created: number;
|
|
57
|
-
updated: number;
|
|
58
|
-
}, {
|
|
59
|
-
notified: number;
|
|
60
|
-
scanned: number;
|
|
61
|
-
created: number;
|
|
62
|
-
updated: number;
|
|
63
|
-
}>;
|
|
64
|
-
export type OpportunityScanSummary = z.infer<typeof OpportunityScanSummarySchema>;
|
|
65
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/scanning/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,uBAAuB,iGAQlC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAczC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAErF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAKvC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export const OpportunityStatusSchema = z.enum([
|
|
3
|
-
"discovered",
|
|
4
|
-
"shortlisted",
|
|
5
|
-
"notified",
|
|
6
|
-
"viewed",
|
|
7
|
-
"applied",
|
|
8
|
-
"passed",
|
|
9
|
-
"archived",
|
|
10
|
-
]);
|
|
11
|
-
export const ScanCandidateOpportunitySchema = z.object({
|
|
12
|
-
source: z.enum(["remotive", "greenhouse", "lever", "ashby", "jsonld"]),
|
|
13
|
-
sourceOpportunityId: z.string().nullable(),
|
|
14
|
-
dedupeKey: z.string(),
|
|
15
|
-
title: z.string(),
|
|
16
|
-
company: z.string(),
|
|
17
|
-
location: z.string(),
|
|
18
|
-
url: z.string().nullable(),
|
|
19
|
-
salary: z.string().nullable(),
|
|
20
|
-
summary: z.string(),
|
|
21
|
-
postedAt: z.date().nullable(),
|
|
22
|
-
score: z.number(),
|
|
23
|
-
scoreMetadata: z.record(z.unknown()),
|
|
24
|
-
metadata: z.record(z.unknown()),
|
|
25
|
-
});
|
|
26
|
-
export const OpportunityScanSummarySchema = z.object({
|
|
27
|
-
scanned: z.number(),
|
|
28
|
-
created: z.number(),
|
|
29
|
-
updated: z.number(),
|
|
30
|
-
notified: z.number(),
|
|
31
|
-
});
|
|
32
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/scanning/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAChC,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAA"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { ScheduledTask, ScheduleType } from "./types.js";
|
|
2
|
-
import type { TaskStore } from "./stores.js";
|
|
3
|
-
export declare class FileTaskStore implements TaskStore {
|
|
4
|
-
private tasksPath;
|
|
5
|
-
constructor(tasksPath: string);
|
|
6
|
-
addTask(params: {
|
|
7
|
-
chat_id: string;
|
|
8
|
-
name: string;
|
|
9
|
-
prompt: string;
|
|
10
|
-
schedule_type: ScheduleType;
|
|
11
|
-
schedule_value: string;
|
|
12
|
-
}): Promise<ScheduledTask>;
|
|
13
|
-
cancelTask(taskId: string): Promise<ScheduledTask | null>;
|
|
14
|
-
listTasks(): Promise<ScheduledTask[]>;
|
|
15
|
-
computeNextRun(cronExpression: string): string;
|
|
16
|
-
loadTasks(): Promise<ScheduledTask[]>;
|
|
17
|
-
saveTasks(tasks: ScheduledTask[]): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
export declare class TaskScheduler {
|
|
20
|
-
private store;
|
|
21
|
-
private interval;
|
|
22
|
-
constructor(taskStoreOrPath: TaskStore | string);
|
|
23
|
-
get taskStore(): TaskStore;
|
|
24
|
-
start(intervalMs: number, callback: (task: ScheduledTask) => Promise<void>): void;
|
|
25
|
-
stop(): void;
|
|
26
|
-
tick(callback: (task: ScheduledTask) => Promise<void>): Promise<void>;
|
|
27
|
-
addTask(params: {
|
|
28
|
-
chat_id: string;
|
|
29
|
-
name: string;
|
|
30
|
-
prompt: string;
|
|
31
|
-
schedule_type: ScheduleType;
|
|
32
|
-
schedule_value: string;
|
|
33
|
-
}): Promise<ScheduledTask>;
|
|
34
|
-
cancelTask(taskId: string): Promise<ScheduledTask | null>;
|
|
35
|
-
listTasks(): Promise<ScheduledTask[]>;
|
|
36
|
-
computeNextRun(cronExpression: string): string;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/agent/scheduler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,SAAS,CAAQ;gBAEb,SAAS,EAAE,MAAM;IAIvB,OAAO,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,YAAY,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsBpB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUzD,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI3C,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAMxC,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IASrC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAIvD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAA8C;gBAElD,eAAe,EAAE,SAAS,GAAG,MAAM;IAM/C,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQjF,IAAI,IAAI,IAAI;IAON,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrE,OAAO,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,YAAY,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAIzD,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI3C,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;CAG/C"}
|
package/dist/agent/scheduler.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs/promises";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { nanoid } from "nanoid";
|
|
4
|
-
import { CronExpressionParser } from "cron-parser";
|
|
5
|
-
export class FileTaskStore {
|
|
6
|
-
tasksPath;
|
|
7
|
-
constructor(tasksPath) {
|
|
8
|
-
this.tasksPath = tasksPath;
|
|
9
|
-
}
|
|
10
|
-
async addTask(params) {
|
|
11
|
-
const tasks = await this.loadTasks();
|
|
12
|
-
const task = {
|
|
13
|
-
id: nanoid(),
|
|
14
|
-
chat_id: params.chat_id,
|
|
15
|
-
name: params.name,
|
|
16
|
-
prompt: params.prompt,
|
|
17
|
-
schedule_type: params.schedule_type,
|
|
18
|
-
schedule_value: params.schedule_value,
|
|
19
|
-
status: "active",
|
|
20
|
-
created_at: new Date().toISOString(),
|
|
21
|
-
next_run_at: params.schedule_type === "once"
|
|
22
|
-
? params.schedule_value
|
|
23
|
-
: this.computeNextRun(params.schedule_value),
|
|
24
|
-
};
|
|
25
|
-
tasks.push(task);
|
|
26
|
-
await this.saveTasks(tasks);
|
|
27
|
-
return task;
|
|
28
|
-
}
|
|
29
|
-
async cancelTask(taskId) {
|
|
30
|
-
const tasks = await this.loadTasks();
|
|
31
|
-
const task = tasks.find((t) => t.id === taskId);
|
|
32
|
-
if (!task)
|
|
33
|
-
return null;
|
|
34
|
-
task.status = "cancelled";
|
|
35
|
-
await this.saveTasks(tasks);
|
|
36
|
-
return task;
|
|
37
|
-
}
|
|
38
|
-
async listTasks() {
|
|
39
|
-
return this.loadTasks();
|
|
40
|
-
}
|
|
41
|
-
computeNextRun(cronExpression) {
|
|
42
|
-
const expr = CronExpressionParser.parse(cronExpression);
|
|
43
|
-
const next = expr.next();
|
|
44
|
-
return next.toISOString() ?? new Date().toISOString();
|
|
45
|
-
}
|
|
46
|
-
async loadTasks() {
|
|
47
|
-
try {
|
|
48
|
-
const raw = await fs.readFile(this.tasksPath, "utf-8");
|
|
49
|
-
return JSON.parse(raw);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
async saveTasks(tasks) {
|
|
56
|
-
await fs.mkdir(path.dirname(this.tasksPath), { recursive: true });
|
|
57
|
-
await fs.writeFile(this.tasksPath, JSON.stringify(tasks, null, 2), "utf-8");
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
export class TaskScheduler {
|
|
61
|
-
store;
|
|
62
|
-
interval = null;
|
|
63
|
-
constructor(taskStoreOrPath) {
|
|
64
|
-
this.store = typeof taskStoreOrPath === "string"
|
|
65
|
-
? new FileTaskStore(taskStoreOrPath)
|
|
66
|
-
: taskStoreOrPath;
|
|
67
|
-
}
|
|
68
|
-
get taskStore() {
|
|
69
|
-
return this.store;
|
|
70
|
-
}
|
|
71
|
-
start(intervalMs, callback) {
|
|
72
|
-
this.stop();
|
|
73
|
-
this.tick(callback).catch(() => { });
|
|
74
|
-
this.interval = setInterval(() => {
|
|
75
|
-
this.tick(callback).catch(() => { });
|
|
76
|
-
}, intervalMs);
|
|
77
|
-
}
|
|
78
|
-
stop() {
|
|
79
|
-
if (this.interval) {
|
|
80
|
-
clearInterval(this.interval);
|
|
81
|
-
this.interval = null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
async tick(callback) {
|
|
85
|
-
const tasks = await this.store.loadTasks();
|
|
86
|
-
const now = new Date();
|
|
87
|
-
for (const task of tasks) {
|
|
88
|
-
if (task.status !== "active")
|
|
89
|
-
continue;
|
|
90
|
-
if (!task.next_run_at)
|
|
91
|
-
continue;
|
|
92
|
-
if (new Date(task.next_run_at) > now)
|
|
93
|
-
continue;
|
|
94
|
-
try {
|
|
95
|
-
await callback(task);
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
// callback errors don't stop the tick loop
|
|
99
|
-
}
|
|
100
|
-
task.last_run_at = now.toISOString();
|
|
101
|
-
if (task.schedule_type === "once") {
|
|
102
|
-
task.status = "completed";
|
|
103
|
-
task.next_run_at = undefined;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
task.next_run_at = this.store.computeNextRun(task.schedule_value);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
await this.store.saveTasks(tasks);
|
|
110
|
-
}
|
|
111
|
-
// Delegate storage methods to the store for backward compatibility
|
|
112
|
-
async addTask(params) {
|
|
113
|
-
return this.store.addTask(params);
|
|
114
|
-
}
|
|
115
|
-
async cancelTask(taskId) {
|
|
116
|
-
return this.store.cancelTask(taskId);
|
|
117
|
-
}
|
|
118
|
-
async listTasks() {
|
|
119
|
-
return this.store.listTasks();
|
|
120
|
-
}
|
|
121
|
-
computeNextRun(cronExpression) {
|
|
122
|
-
return this.store.computeNextRun(cronExpression);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=scheduler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/agent/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAIlD,MAAM,OAAO,aAAa;IAChB,SAAS,CAAQ;IAEzB,YAAY,SAAiB;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAMb;QACC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QAEpC,MAAM,IAAI,GAAkB;YAC1B,EAAE,EAAE,MAAM,EAAE;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,WAAW,EAAE,MAAM,CAAC,aAAa,KAAK,MAAM;gBAC1C,CAAC,CAAC,MAAM,CAAC,cAAc;gBACvB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC;SAC/C,CAAA;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;QACzB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;IACzB,CAAC;IAED,cAAc,CAAC,cAAsB;QACnC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAsB;QACpC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7E,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IAChB,KAAK,CAAW;IAChB,QAAQ,GAA0C,IAAI,CAAA;IAE9D,YAAY,eAAmC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,eAAe,KAAK,QAAQ;YAC9C,CAAC,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC;YACpC,CAAC,CAAC,eAAe,CAAA;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,UAAkB,EAAE,QAAgD;QACxE,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrC,CAAC,EAAE,UAAU,CAAC,CAAA;IAChB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgD;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,SAAQ;YACtC,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,SAAQ;YAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG;gBAAE,SAAQ;YAE9C,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;YAEpC,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;gBACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,OAAO,CAAC,MAMb;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAA;IAC/B,CAAC;IAED,cAAc,CAAC,cAAsB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAClD,CAAC;CACF"}
|
package/dist/agent/session.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Session, SessionMessage } from "./types.js";
|
|
2
|
-
import type { SessionStore } from "./stores.js";
|
|
3
|
-
export declare class FileSessionStore implements SessionStore {
|
|
4
|
-
private storagePath;
|
|
5
|
-
constructor(storagePath?: string);
|
|
6
|
-
private sessionFile;
|
|
7
|
-
private metaFile;
|
|
8
|
-
private ensureDir;
|
|
9
|
-
create(conversationId?: string): Promise<Session>;
|
|
10
|
-
load(sessionId: string): Promise<Session>;
|
|
11
|
-
append(sessionId: string, message: SessionMessage): Promise<void>;
|
|
12
|
-
list(): Promise<{
|
|
13
|
-
id: string;
|
|
14
|
-
created_at: string;
|
|
15
|
-
message_count: number;
|
|
16
|
-
}[]>;
|
|
17
|
-
}
|
|
18
|
-
/** @deprecated Use FileSessionStore */
|
|
19
|
-
export declare const SessionManager: typeof FileSessionStore;
|
|
20
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/agent/session.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,WAAW,CAAQ;gBAEf,WAAW,CAAC,EAAE,MAAM;IAIhC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;YAIF,SAAS;IAIjB,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BjD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBzC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE,IAAI,IAAI,OAAO,CACnB;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAC5D;CAwCF;AAED,uCAAuC;AACvC,eAAO,MAAM,cAAc,yBAAmB,CAAA"}
|
package/dist/agent/session.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs/promises";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { nanoid } from "nanoid";
|
|
4
|
-
import { expandPath } from "./config.js";
|
|
5
|
-
export class FileSessionStore {
|
|
6
|
-
storagePath;
|
|
7
|
-
constructor(storagePath) {
|
|
8
|
-
this.storagePath = storagePath ?? expandPath("~/.artemys/sessions");
|
|
9
|
-
}
|
|
10
|
-
sessionFile(sessionId) {
|
|
11
|
-
return path.join(this.storagePath, `${sessionId}.jsonl`);
|
|
12
|
-
}
|
|
13
|
-
metaFile(sessionId) {
|
|
14
|
-
return path.join(this.storagePath, `${sessionId}.meta.json`);
|
|
15
|
-
}
|
|
16
|
-
async ensureDir() {
|
|
17
|
-
await fs.mkdir(this.storagePath, { recursive: true });
|
|
18
|
-
}
|
|
19
|
-
async create(conversationId) {
|
|
20
|
-
await this.ensureDir();
|
|
21
|
-
const id = nanoid();
|
|
22
|
-
const now = new Date().toISOString();
|
|
23
|
-
const session = {
|
|
24
|
-
id,
|
|
25
|
-
conversation_id: conversationId ?? nanoid(),
|
|
26
|
-
messages: [],
|
|
27
|
-
created_at: now,
|
|
28
|
-
updated_at: now,
|
|
29
|
-
};
|
|
30
|
-
await fs.writeFile(this.metaFile(id), JSON.stringify({
|
|
31
|
-
id: session.id,
|
|
32
|
-
conversation_id: session.conversation_id,
|
|
33
|
-
created_at: session.created_at,
|
|
34
|
-
}), "utf-8");
|
|
35
|
-
await fs.writeFile(this.sessionFile(id), "", "utf-8");
|
|
36
|
-
return session;
|
|
37
|
-
}
|
|
38
|
-
async load(sessionId) {
|
|
39
|
-
const metaRaw = await fs.readFile(this.metaFile(sessionId), "utf-8");
|
|
40
|
-
const meta = JSON.parse(metaRaw);
|
|
41
|
-
const jsonlRaw = await fs.readFile(this.sessionFile(sessionId), "utf-8");
|
|
42
|
-
const messages = jsonlRaw
|
|
43
|
-
.split("\n")
|
|
44
|
-
.filter((line) => line.trim().length > 0)
|
|
45
|
-
.map((line) => JSON.parse(line));
|
|
46
|
-
const lastMessage = messages[messages.length - 1];
|
|
47
|
-
return {
|
|
48
|
-
id: meta.id,
|
|
49
|
-
conversation_id: meta.conversation_id,
|
|
50
|
-
messages,
|
|
51
|
-
created_at: meta.created_at,
|
|
52
|
-
updated_at: lastMessage?.timestamp ?? meta.created_at,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
async append(sessionId, message) {
|
|
56
|
-
await this.ensureDir();
|
|
57
|
-
await fs.appendFile(this.sessionFile(sessionId), JSON.stringify(message) + "\n", "utf-8");
|
|
58
|
-
}
|
|
59
|
-
async list() {
|
|
60
|
-
await this.ensureDir();
|
|
61
|
-
const files = await fs.readdir(this.storagePath);
|
|
62
|
-
const metaFiles = files.filter((f) => f.endsWith(".meta.json"));
|
|
63
|
-
const results = [];
|
|
64
|
-
for (const metaFile of metaFiles) {
|
|
65
|
-
const metaRaw = await fs.readFile(path.join(this.storagePath, metaFile), "utf-8");
|
|
66
|
-
const meta = JSON.parse(metaRaw);
|
|
67
|
-
let messageCount = 0;
|
|
68
|
-
try {
|
|
69
|
-
const jsonlRaw = await fs.readFile(this.sessionFile(meta.id), "utf-8");
|
|
70
|
-
messageCount = jsonlRaw
|
|
71
|
-
.split("\n")
|
|
72
|
-
.filter((line) => line.trim().length > 0).length;
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// JSONL file missing
|
|
76
|
-
}
|
|
77
|
-
results.push({
|
|
78
|
-
id: meta.id,
|
|
79
|
-
created_at: meta.created_at,
|
|
80
|
-
message_count: messageCount,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return results.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/** @deprecated Use FileSessionStore */
|
|
87
|
-
export const SessionManager = FileSessionStore;
|
|
88
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/agent/session.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/stores.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Session, SessionMessage, ScheduledTask, ScheduleType, ToolDefinition, ToolContext, ToolResult, AgentConfig } from "./types.js";
|
|
2
|
-
export interface SessionStore {
|
|
3
|
-
create(conversationId?: string): Promise<Session>;
|
|
4
|
-
load(sessionId: string): Promise<Session>;
|
|
5
|
-
append(sessionId: string, message: SessionMessage): Promise<void>;
|
|
6
|
-
list(): Promise<{
|
|
7
|
-
id: string;
|
|
8
|
-
created_at: string;
|
|
9
|
-
message_count: number;
|
|
10
|
-
}[]>;
|
|
11
|
-
}
|
|
12
|
-
export interface TaskStore {
|
|
13
|
-
addTask(params: {
|
|
14
|
-
chat_id: string;
|
|
15
|
-
name: string;
|
|
16
|
-
prompt: string;
|
|
17
|
-
schedule_type: ScheduleType;
|
|
18
|
-
schedule_value: string;
|
|
19
|
-
}): Promise<ScheduledTask>;
|
|
20
|
-
cancelTask(taskId: string): Promise<ScheduledTask | null>;
|
|
21
|
-
listTasks(): Promise<ScheduledTask[]>;
|
|
22
|
-
loadTasks(): Promise<ScheduledTask[]>;
|
|
23
|
-
saveTasks(tasks: ScheduledTask[]): Promise<void>;
|
|
24
|
-
computeNextRun(cron: string): string;
|
|
25
|
-
}
|
|
26
|
-
export interface ContextProvider {
|
|
27
|
-
getSoul(): Promise<string>;
|
|
28
|
-
getProfile(): Promise<string>;
|
|
29
|
-
getPreferences(): Promise<string>;
|
|
30
|
-
getMemory(): Promise<string>;
|
|
31
|
-
getHeartbeat(): Promise<string>;
|
|
32
|
-
}
|
|
33
|
-
export type SystemPromptBuilder = (context: {
|
|
34
|
-
soul: string;
|
|
35
|
-
profile: string;
|
|
36
|
-
preferences: string;
|
|
37
|
-
memory: string;
|
|
38
|
-
heartbeat: string;
|
|
39
|
-
tools: ToolDefinition[];
|
|
40
|
-
config: AgentConfig;
|
|
41
|
-
}) => string | Promise<string>;
|
|
42
|
-
export type ToolExecutionHook = (event: {
|
|
43
|
-
toolName: string;
|
|
44
|
-
args: unknown;
|
|
45
|
-
context?: ToolContext;
|
|
46
|
-
result?: ToolResult;
|
|
47
|
-
}) => void | Promise<void>;
|
|
48
|
-
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/agent/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAA;AAInB,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,IAAI,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CAC7E;AAID,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,YAAY,CAAA;QAC3B,cAAc,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACzD,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACrC,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACrC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACrC;AAID,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACjC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC;AAID,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,MAAM,EAAE,WAAW,CAAA;CACpB,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAI9B,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/dist/agent/stores.js
DELETED
package/dist/agent/stores.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/agent/stores.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export interface ATSSelectors {
|
|
2
|
-
apply_button: string;
|
|
3
|
-
name_field: string;
|
|
4
|
-
email_field: string;
|
|
5
|
-
resume_upload: string;
|
|
6
|
-
submit_button: string;
|
|
7
|
-
[key: string]: string;
|
|
8
|
-
}
|
|
9
|
-
export type ATSFieldKey = "name" | "first_name" | "last_name" | "email" | "phone" | "location" | "linkedin" | "github" | "website" | "cover_letter" | "generic";
|
|
10
|
-
export type ATSActionPlan = {
|
|
11
|
-
apply_button_candidates: string[];
|
|
12
|
-
submit_button_candidates: string[];
|
|
13
|
-
resume_upload_candidates: string[];
|
|
14
|
-
fill_field_candidates: Record<ATSFieldKey, string[]>;
|
|
15
|
-
};
|
|
16
|
-
export type ATSType = "ashby" | "greenhouse" | "lever" | "workday" | "unknown";
|
|
17
|
-
export declare function detectATS(url: string): ATSType;
|
|
18
|
-
export declare function getSelectors(atsType: ATSType): ATSSelectors;
|
|
19
|
-
export declare function getActionPlan(atsType: ATSType): ATSActionPlan;
|
|
20
|
-
//# sourceMappingURL=ats-patterns.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ats-patterns.d.ts","sourceRoot":"","sources":["../../../../src/agent/tools/browser/ats-patterns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,OAAO,GACP,OAAO,GACP,UAAU,GACV,UAAU,GACV,QAAQ,GACR,SAAS,GACT,cAAc,GACd,SAAS,CAAA;AAEb,MAAM,MAAM,aAAa,GAAG;IAC1B,uBAAuB,EAAE,MAAM,EAAE,CAAA;IACjC,wBAAwB,EAAE,MAAM,EAAE,CAAA;IAClC,wBAAwB,EAAE,MAAM,EAAE,CAAA;IAClC,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,OAAO,GACf,OAAO,GACP,YAAY,GACZ,OAAO,GACP,SAAS,GACT,SAAS,CAAA;AAEb,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO9C;AA8ND,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAE3D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAE7D"}
|