@mastra/factory 0.25.0-alpha.4 → 0.25.0-alpha.6
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/README.md +3 -1
- package/dist/auth.js +1 -2
- package/dist/boards/define-board.js +1 -2
- package/dist/boards/index.js +1 -2
- package/dist/boards/registry.js +1 -2
- package/dist/boards/relocate.js +1 -2
- package/dist/boards/review.js +1 -2
- package/dist/boards/semantics.js +1 -2
- package/dist/boards/transition-policy.js +1 -2
- package/dist/boards/work-tool-rules.js +1 -2
- package/dist/boards/work-transition-policy.js +1 -2
- package/dist/boards/work.js +1 -2
- package/dist/default-thinking-level.d.ts +3 -0
- package/dist/default-thinking-level.d.ts.map +1 -0
- package/dist/default-thinking-level.js +5 -0
- package/dist/default-thinking-level.js.map +1 -0
- package/dist/environment/build-runner.js +1 -2
- package/dist/environment/build-schedule.js +1 -2
- package/dist/environment/build-workflow.js +1 -2
- package/dist/environment/build.js +1 -2
- package/dist/environment/heads.js +1 -2
- package/dist/factory.d.ts +4 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +62 -21
- package/dist/factory.js.map +1 -1
- package/dist/feed-events.js +1 -2
- package/dist/index.js +2 -2
- package/dist/integrations/channel-thread-announcements.d.ts +8 -0
- package/dist/integrations/channel-thread-announcements.d.ts.map +1 -0
- package/dist/integrations/channel-thread-announcements.js +16 -0
- package/dist/integrations/channel-thread-announcements.js.map +1 -0
- package/dist/integrations/github/acceptance-labels.js +1 -2
- package/dist/integrations/github/app-identity.js +1 -2
- package/dist/integrations/github/commits.js +1 -2
- package/dist/integrations/github/config.js +1 -2
- package/dist/integrations/github/default-rules.js +2 -3
- package/dist/integrations/github/integration.js +3 -4
- package/dist/integrations/github/issue-reconciler.js +1 -2
- package/dist/integrations/github/pat.js +1 -2
- package/dist/integrations/github/provenance.d.ts.map +1 -1
- package/dist/integrations/github/provenance.js +2 -5
- package/dist/integrations/github/provenance.js.map +1 -1
- package/dist/integrations/github/reconcile-worker.js +1 -2
- package/dist/integrations/github/reconciliation-config.js +1 -2
- package/dist/integrations/github/routes.js +4 -5
- package/dist/integrations/github/rules.d.ts.map +1 -1
- package/dist/integrations/github/rules.js +14 -3
- package/dist/integrations/github/rules.js.map +1 -1
- package/dist/integrations/github/sandbox-release.js +1 -2
- package/dist/integrations/github/sandbox.js +1 -2
- package/dist/integrations/github/session-subscriptions.js +1 -2
- package/dist/integrations/github/settle-or-abort.js +1 -2
- package/dist/integrations/github/stale-reviews.js +1 -2
- package/dist/integrations/github/subscriptions.js +1 -2
- package/dist/integrations/github/token-refresh.js +1 -2
- package/dist/integrations/github/webhook.d.ts.map +1 -1
- package/dist/integrations/github/webhook.js +17 -3
- package/dist/integrations/github/webhook.js.map +1 -1
- package/dist/integrations/gitlab/agent-tools.js +1 -2
- package/dist/integrations/gitlab/api.js +1 -2
- package/dist/integrations/gitlab/default-rules.js +1 -2
- package/dist/integrations/gitlab/integration.d.ts +4 -0
- package/dist/integrations/gitlab/integration.d.ts.map +1 -1
- package/dist/integrations/gitlab/integration.js +12 -4
- package/dist/integrations/gitlab/integration.js.map +1 -1
- package/dist/integrations/gitlab/issue-reconciler.js +1 -2
- package/dist/integrations/gitlab/merge-request-reconciler.js +1 -2
- package/dist/integrations/gitlab/reconciler.js +1 -2
- package/dist/integrations/gitlab/reconciliation-config.js +1 -2
- package/dist/integrations/gitlab/routes.d.ts +6 -0
- package/dist/integrations/gitlab/routes.d.ts.map +1 -1
- package/dist/integrations/gitlab/routes.js +154 -3
- package/dist/integrations/gitlab/routes.js.map +1 -1
- package/dist/integrations/gitlab/rules.d.ts.map +1 -1
- package/dist/integrations/gitlab/rules.js +5 -3
- package/dist/integrations/gitlab/rules.js.map +1 -1
- package/dist/integrations/gitlab/session-subscriptions.js +1 -2
- package/dist/integrations/gitlab/subscriptions.js +1 -2
- package/dist/integrations/gitlab/version-control.js +1 -2
- package/dist/integrations/gitlab/webhook-dispatch.js +1 -2
- package/dist/integrations/gitlab/webhook.js +1 -2
- package/dist/integrations/incidentio/agent-tools.js +1 -2
- package/dist/integrations/incidentio/api.js +1 -2
- package/dist/integrations/incidentio/claim.js +1 -2
- package/dist/integrations/incidentio/default-rules.js +1 -2
- package/dist/integrations/incidentio/intake.js +1 -2
- package/dist/integrations/incidentio/integration.js +1 -2
- package/dist/integrations/incidentio/issue-reconciler.js +1 -2
- package/dist/integrations/incidentio/reconciliation-config.js +1 -2
- package/dist/integrations/incidentio/routes.js +1 -2
- package/dist/integrations/incidentio/rules.js +1 -2
- package/dist/integrations/issue-reconcile-worker.js +1 -2
- package/dist/integrations/issue-reconciler.js +1 -2
- package/dist/integrations/jira/adf.js +1 -2
- package/dist/integrations/jira/agent-tools.js +1 -2
- package/dist/integrations/jira/api.d.ts +1 -1
- package/dist/integrations/jira/api.d.ts.map +1 -1
- package/dist/integrations/jira/api.js +2 -3
- package/dist/integrations/jira/api.js.map +1 -1
- package/dist/integrations/jira/claim.js +1 -2
- package/dist/integrations/jira/default-rules.js +1 -2
- package/dist/integrations/jira/integration.d.ts +3 -1
- package/dist/integrations/jira/integration.d.ts.map +1 -1
- package/dist/integrations/jira/integration.js +18 -4
- package/dist/integrations/jira/integration.js.map +1 -1
- package/dist/integrations/jira/issue-reconciler.js +1 -2
- package/dist/integrations/jira/reconciliation-config.js +1 -2
- package/dist/integrations/jira/routes.js +1 -2
- package/dist/integrations/jira/rules.js +1 -2
- package/dist/integrations/linear/agent-tools.d.ts +1 -1
- package/dist/integrations/linear/agent-tools.d.ts.map +1 -1
- package/dist/integrations/linear/agent-tools.js +5 -5
- package/dist/integrations/linear/agent-tools.js.map +1 -1
- package/dist/integrations/linear/claim.js +1 -2
- package/dist/integrations/linear/default-rules.js +1 -2
- package/dist/integrations/linear/integration.d.ts +2 -0
- package/dist/integrations/linear/integration.d.ts.map +1 -1
- package/dist/integrations/linear/integration.js +2 -2
- package/dist/integrations/linear/integration.js.map +1 -1
- package/dist/integrations/linear/issue-reconciler.js +1 -2
- package/dist/integrations/linear/reconciliation-config.js +1 -2
- package/dist/integrations/linear/routes.js +1 -2
- package/dist/integrations/linear/rules.js +1 -2
- package/dist/integrations/platform/api-client.js +1 -2
- package/dist/integrations/platform/connect/routes.js +1 -2
- package/dist/integrations/platform/github/event-worker.js +6 -2
- package/dist/integrations/platform/github/event-worker.js.map +1 -1
- package/dist/integrations/platform/github/integration.js +1 -2
- package/dist/integrations/platform/gitlab/event-worker.js +1 -2
- package/dist/integrations/platform/gitlab/integration.js +1 -2
- package/dist/integrations/platform/incidentio/integration.js +1 -2
- package/dist/integrations/platform/jira/agent-tools.js +1 -2
- package/dist/integrations/platform/jira/integration.js +1 -2
- package/dist/integrations/platform/jira/routes.js +1 -2
- package/dist/integrations/platform/linear/event-worker.js +1 -2
- package/dist/integrations/platform/linear/integration.d.ts.map +1 -1
- package/dist/integrations/platform/linear/integration.js +2 -2
- package/dist/integrations/platform/linear/integration.js.map +1 -1
- package/dist/integrations/pull-request-head.d.ts +1 -0
- package/dist/integrations/pull-request-head.d.ts.map +1 -1
- package/dist/integrations/pull-request-head.js +3 -3
- package/dist/integrations/pull-request-head.js.map +1 -1
- package/dist/integrations/reconciliation-config.js +1 -2
- package/dist/integrations/slack/channel-reply-processor.d.ts +1 -0
- package/dist/integrations/slack/channel-reply-processor.d.ts.map +1 -1
- package/dist/integrations/slack/channel-reply-processor.js +16 -6
- package/dist/integrations/slack/channel-reply-processor.js.map +1 -1
- package/dist/integrations/slack/channel-session-link-processor.d.ts +1 -0
- package/dist/integrations/slack/channel-session-link-processor.d.ts.map +1 -1
- package/dist/integrations/slack/channel-session-link-processor.js +2 -3
- package/dist/integrations/slack/channel-session-link-processor.js.map +1 -1
- package/dist/integrations/slack/connect-route.js +1 -2
- package/dist/integrations/slack/emoji-shortcodes.generated.js +1 -2
- package/dist/integrations/slack/emoji.js +1 -2
- package/dist/integrations/slack/feed-publisher.js +1 -2
- package/dist/integrations/slack/integration.d.ts +5 -0
- package/dist/integrations/slack/integration.d.ts.map +1 -1
- package/dist/integrations/slack/integration.js +13 -2
- package/dist/integrations/slack/integration.js.map +1 -1
- package/dist/integrations/slack/reply-reminder-processor.js +1 -2
- package/dist/integrations/slack/reply-tool.d.ts.map +1 -1
- package/dist/integrations/slack/reply-tool.js +4 -13
- package/dist/integrations/slack/reply-tool.js.map +1 -1
- package/dist/integrations/slack/run-error-card.d.ts +3 -0
- package/dist/integrations/slack/run-error-card.d.ts.map +1 -0
- package/dist/integrations/slack/run-error-card.js +44 -0
- package/dist/integrations/slack/run-error-card.js.map +1 -0
- package/dist/integrations/slack/share-file-tool.js +1 -2
- package/dist/integrations/slack/slack.d.ts.map +1 -1
- package/dist/integrations/slack/slack.js +7 -4
- package/dist/integrations/slack/slack.js.map +1 -1
- package/dist/integrations/subscription-session.js +1 -2
- package/dist/integrations/workos/integration.js +1 -2
- package/dist/mcp/disconnect.js +1 -2
- package/dist/mcp/events.js +2 -3
- package/dist/mcp/routes.js +1 -2
- package/dist/packages/_internals/workspace/dist/index.js +1 -2
- package/dist/packages/_internals/workspace/dist/index.js.map +1 -1
- package/dist/platform-auth-host.js +1 -2
- package/dist/provider-display-name.js +1 -2
- package/dist/review-verdict.d.ts +1 -0
- package/dist/review-verdict.d.ts.map +1 -1
- package/dist/review-verdict.js +9 -3
- package/dist/review-verdict.js.map +1 -1
- package/dist/routes/attention-activity.js +1 -2
- package/dist/routes/attention-parked.js +1 -2
- package/dist/routes/attention-proposed.js +1 -2
- package/dist/routes/attention-providers.js +1 -2
- package/dist/routes/attention.js +1 -2
- package/dist/routes/automation-runs.js +1 -2
- package/dist/routes/config.d.ts +7 -0
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +29 -3
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/contracts.js +1 -2
- package/dist/routes/custom-provider-source.js +1 -2
- package/dist/routes/fs.js +1 -2
- package/dist/routes/intake.js +6 -4
- package/dist/routes/intake.js.map +1 -1
- package/dist/routes/knowledge.js +1 -2
- package/dist/routes/oauth.js +1 -2
- package/dist/routes/projects.js +1 -2
- package/dist/routes/provider-credentials.js +1 -2
- package/dist/routes/route.js +1 -2
- package/dist/routes/session-access.js +1 -2
- package/dist/routes/skills.js +1 -2
- package/dist/routes/source-control-sessions.js +5 -6
- package/dist/routes/source-control-settings.js +1 -2
- package/dist/routes/surface.js +3 -4
- package/dist/routes/surface.js.map +1 -1
- package/dist/routes/telemetry.js +1 -2
- package/dist/routes/tenant-credentials.js +1 -2
- package/dist/routes/work-items.js +2 -3
- package/dist/rules/binding-context.js +1 -2
- package/dist/rules/decision-applicability.js +1 -2
- package/dist/rules/dispatch-errors.js +1 -2
- package/dist/rules/dispatcher.d.ts.map +1 -1
- package/dist/rules/dispatcher.js +9 -3
- package/dist/rules/dispatcher.js.map +1 -1
- package/dist/rules/event-rules.js +1 -2
- package/dist/rules/processor.js +1 -2
- package/dist/rules/resolve.js +1 -2
- package/dist/rules/review-source-tool.js +1 -2
- package/dist/rules/start-coordinator.js +1 -2
- package/dist/rules/terminal-cleanup.js +1 -2
- package/dist/rules/tools.js +1 -2
- package/dist/rules/transition-service.js +1 -2
- package/dist/rules/types.d.ts +4 -1
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/rules/types.js +1 -2
- package/dist/rules/types.js.map +1 -1
- package/dist/rules/validation.js +1 -2
- package/dist/run-error.d.ts +13 -0
- package/dist/run-error.d.ts.map +1 -0
- package/dist/run-error.js +81 -0
- package/dist/run-error.js.map +1 -0
- package/dist/sandbox/callback-factory-sandbox.js +1 -2
- package/dist/sandbox/git-ref.js +1 -2
- package/dist/sandbox/local-factory-sandbox.d.ts +12 -4
- package/dist/sandbox/local-factory-sandbox.d.ts.map +1 -1
- package/dist/sandbox/local-factory-sandbox.js +32 -7
- package/dist/sandbox/local-factory-sandbox.js.map +1 -1
- package/dist/sandbox/materialization.js +1 -2
- package/dist/sandbox/session-retirement.js +1 -2
- package/dist/sandbox/session-sandbox.js +1 -2
- package/dist/sandbox/workdir.js +1 -2
- package/dist/secret-encryption.js +1 -2
- package/dist/server-error.js +1 -2
- package/dist/session/credential-policy.js +1 -2
- package/dist/session/default-model-hydration.js +1 -2
- package/dist/session/environment-repositories.js +1 -2
- package/dist/session/environment-state-processor.d.ts +0 -1
- package/dist/session/environment-state-processor.d.ts.map +1 -1
- package/dist/session/environment-state-processor.js +2 -3
- package/dist/session/environment-state-processor.js.map +1 -1
- package/dist/session/factory-session.js +1 -2
- package/dist/session/filesystem-capture.js +2 -3
- package/dist/session/filesystem-capture.js.map +1 -1
- package/dist/session/first-exec-capture.js +2 -3
- package/dist/session/first-exec-capture.js.map +1 -1
- package/dist/session/first-message-capture.js +1 -2
- package/dist/session/live-sessions.js +1 -2
- package/dist/session/memory-settings-hydration.js +1 -2
- package/dist/session/org-seed.js +1 -2
- package/dist/session/reply-credential-processor.js +1 -2
- package/dist/session/resource-migration.js +1 -2
- package/dist/session/run-audit.js +1 -2
- package/dist/session/session-threads.js +1 -2
- package/dist/session/session-title.js +1 -2
- package/dist/session/shell-commands.js +1 -2
- package/dist/session/source-control-tools.js +2 -3
- package/dist/session/thinking-default.d.ts +1 -1
- package/dist/session/thinking-default.d.ts.map +1 -1
- package/dist/session/thinking-default.js +11 -13
- package/dist/session/thinking-default.js.map +1 -1
- package/dist/session/thread-session-stamp.js +1 -2
- package/dist/session/thread-title-mirror.js +1 -2
- package/dist/session/thread-title-mirror.js.map +1 -1
- package/dist/session/work-item-repository.js +1 -2
- package/dist/session-owner-signal.js +1 -2
- package/dist/skills/catalog.js +1 -2
- package/dist/skills/service.js +1 -2
- package/dist/spa-static.js +1 -2
- package/dist/state-signing.js +1 -2
- package/dist/storage/domains/audit/actions.js +1 -2
- package/dist/storage/domains/audit/actors.js +1 -2
- package/dist/storage/domains/audit/agent-audit.js +1 -2
- package/dist/storage/domains/audit/base.js +1 -2
- package/dist/storage/domains/audit/domain.js +1 -2
- package/dist/storage/domains/audit/wire.js +1 -2
- package/dist/storage/domains/channel-identity/base.js +1 -2
- package/dist/storage/domains/comments/activity.js +1 -2
- package/dist/storage/domains/comments/actor.js +1 -2
- package/dist/storage/domains/comments/base.js +1 -2
- package/dist/storage/domains/comments/domain.js +1 -2
- package/dist/storage/domains/comments/feed-context.js +1 -2
- package/dist/storage/domains/comments/parse.js +1 -2
- package/dist/storage/domains/comments/routes.js +1 -2
- package/dist/storage/domains/comments/schema.js +1 -2
- package/dist/storage/domains/comments/wire.js +1 -2
- package/dist/storage/domains/credentials/base.d.ts +4 -1
- package/dist/storage/domains/credentials/base.d.ts.map +1 -1
- package/dist/storage/domains/credentials/base.js +40 -44
- package/dist/storage/domains/credentials/base.js.map +1 -1
- package/dist/storage/domains/custom-providers/base.js +1 -2
- package/dist/storage/domains/filesystem/base.js +1 -2
- package/dist/storage/domains/intake/base.d.ts +5 -0
- package/dist/storage/domains/intake/base.d.ts.map +1 -1
- package/dist/storage/domains/intake/base.js +10 -2
- package/dist/storage/domains/intake/base.js.map +1 -1
- package/dist/storage/domains/integrations/base.js +1 -2
- package/dist/storage/domains/memory-settings/base.js +1 -2
- package/dist/storage/domains/model-defaults/base.js +1 -2
- package/dist/storage/domains/projects/base.d.ts +0 -1
- package/dist/storage/domains/projects/base.d.ts.map +1 -1
- package/dist/storage/domains/projects/base.js +5 -6
- package/dist/storage/domains/projects/base.js.map +1 -1
- package/dist/storage/domains/queue-health/base.js +1 -2
- package/dist/storage/domains/source-control/base.js +1 -2
- package/dist/storage/domains/source-control/inmemory.js +1 -2
- package/dist/storage/domains/work-items/base.js +1 -2
- package/dist/storage/domains/work-items/board-version.js +1 -2
- package/dist/storage/domains/work-items/metrics.js +1 -2
- package/dist/telemetry-types.js +1 -2
- package/dist/telemetry.js +1 -2
- package/dist/timing.js +1 -2
- package/dist/tools/annotations.js +1 -2
- package/dist/tools/approval-tools.js +1 -2
- package/dist/tools/deliver.js +2 -3
- package/dist/tools/index.js +1 -2
- package/dist/tools/messaging-tools.js +1 -2
- package/dist/tools/permissions.js +1 -2
- package/dist/tools/read-tools.js +1 -2
- package/dist/tools/reports.js +1 -2
- package/dist/tools/run-watch.d.ts +0 -2
- package/dist/tools/run-watch.d.ts.map +1 -1
- package/dist/tools/run-watch.js +4 -44
- package/dist/tools/run-watch.js.map +1 -1
- package/dist/tools/sandbox-tools.js +1 -2
- package/dist/tools/scope.js +2 -3
- package/dist/tools/session-tools.js +1 -2
- package/dist/tools/sessions-state-processor.js +1 -2
- package/dist/tools/side-sessions.js +1 -2
- package/dist/tools/work-item-tools.js +1 -2
- package/dist/work-item-branch.js +1 -2
- package/dist/work-item-branch.js.map +1 -1
- package/dist/work-items/create-work-item.js +1 -2
- package/dist/work-items/decision-actions.js +1 -2
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +1 -3
- package/dist/workspace.js.map +1 -1
- package/factory-skills/factory-gitlab-review/SKILL.md +1 -1
- package/factory-skills/factory-plan/SKILL.md +1 -1
- package/factory-skills/factory-rereview/SKILL.md +14 -3
- package/factory-skills/factory-review/SKILL.md +14 -3
- package/factory-skills/factory-self-review/SKILL.md +1 -1
- package/factory-skills/factory-triage/SKILL.md +52 -29
- package/package.json +19 -17
|
@@ -3,11 +3,11 @@ import { mergeRequestNumberFromBranch } from "../work-item-branch.js";
|
|
|
3
3
|
import { ensureLocalBranch, isCheckoutOf, pushRepositoryBranch, refreshMergeRequestCheckout } from "../integrations/github/sandbox.js";
|
|
4
4
|
import { resolveSessionWorkdir } from "../sandbox/session-sandbox.js";
|
|
5
5
|
import { updateSessionEnvironmentRepository } from "./environment-state-processor.js";
|
|
6
|
-
import { environmentSlugs, findEnvironmentRepository, resolveSessionRepositories } from "./environment-repositories.js";
|
|
7
6
|
import { normalizedVerdictLine } from "../review-verdict.js";
|
|
7
|
+
import { environmentSlugs, findEnvironmentRepository, resolveSessionRepositories } from "./environment-repositories.js";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { createTool } from "@mastra/core/tools";
|
|
10
|
-
|
|
10
|
+
// src/session/source-control-tools.ts
|
|
11
11
|
/** Returns why a review's leading `Verdict:` line contradicts the submitted event, if it does. */
|
|
12
12
|
function verdictEventMismatch(event, body) {
|
|
13
13
|
const match = /^verdict: ?(approve|request changes|changes requested)\b/.exec(normalizedVerdictLine(body) ?? "");
|
|
@@ -655,7 +655,6 @@ async function createSourceControlTools({ requestContext, providers, audit, test
|
|
|
655
655
|
})
|
|
656
656
|
};
|
|
657
657
|
}
|
|
658
|
-
//#endregion
|
|
659
658
|
export { FACTORY_TEST_CHECK_NAME, createSourceControlTools, reviewedHeadFromBody, verdictEventMismatch };
|
|
660
659
|
|
|
661
660
|
//# sourceMappingURL=source-control-tools.js.map
|
|
@@ -5,7 +5,7 @@ import type { FactoryModelPolicyDependencies } from './credential-policy.js';
|
|
|
5
5
|
interface FactoryThinkingDefaultDependencies extends FactoryModelPolicyDependencies {
|
|
6
6
|
modelDefaults: Pick<ModelDefaultsStorage, 'ensureReady' | 'get'>;
|
|
7
7
|
}
|
|
8
|
-
/** A session's unpicked thinking level:
|
|
8
|
+
/** A session's unpicked thinking level: the level of the defaults set it routes to; unsigned requests get the Factory's. */
|
|
9
9
|
export declare function resolveFactoryThinkingLevel(requestContext: RequestContext | undefined, deps: FactoryThinkingDefaultDependencies): Promise<ThinkingLevelSetting>;
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=thinking-default.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-default.d.ts","sourceRoot":"","sources":["../../src/session/thinking-default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"thinking-default.d.ts","sourceRoot":"","sources":["../../src/session/thinking-default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAI7E,UAAU,kCAAmC,SAAQ,8BAA8B;IACjF,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC;CAClE;AAkBD,4HAA4H;AAC5H,wBAAsB,2BAA2B,CAC/C,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAuB/B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DEFAULT_THINKING_LEVEL } from "../default-thinking-level.js";
|
|
2
2
|
import { UUID_PATTERN } from "../routes/contracts.js";
|
|
3
3
|
import { resolveFactoryModelPolicy, routedPersonalDefaults } from "./credential-policy.js";
|
|
4
|
-
|
|
4
|
+
// src/session/thinking-default.ts
|
|
5
5
|
const FACTORY_PROJECT_ID = new RegExp(UUID_PATTERN);
|
|
6
6
|
function sessionlessFactoryProjectId(controller) {
|
|
7
7
|
const stateProjectId = (controller.getState?.())?.factoryProjectId;
|
|
@@ -12,26 +12,24 @@ function sessionlessFactoryProjectId(controller) {
|
|
|
12
12
|
async function unsignedFactoryProjectId(controller, deps) {
|
|
13
13
|
return (controller.sessionId ? await deps.sourceControl.getBySessionId(controller.sessionId) : null)?.factoryProjectId ?? sessionlessFactoryProjectId(controller);
|
|
14
14
|
}
|
|
15
|
-
/** A session's unpicked thinking level:
|
|
15
|
+
/** A session's unpicked thinking level: the level of the defaults set it routes to; unsigned requests get the Factory's. */
|
|
16
16
|
async function resolveFactoryThinkingLevel(requestContext, deps) {
|
|
17
|
-
if (!requestContext) return
|
|
17
|
+
if (!requestContext) return DEFAULT_THINKING_LEVEL;
|
|
18
18
|
const controller = requestContext.get("controller");
|
|
19
|
-
if (!controller) return
|
|
19
|
+
if (!controller) return DEFAULT_THINKING_LEVEL;
|
|
20
20
|
try {
|
|
21
21
|
const policy = await resolveFactoryModelPolicy(requestContext, deps);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (!policy) return factoryLevel;
|
|
25
|
-
return (await routedPersonalDefaults(policy.tenant, deps.modelDefaults).catch((error) => {
|
|
26
|
-
console.warn("[factory] Could not read the personal thinking default; using the Factory level.", error);
|
|
22
|
+
if (policy && policy.tenant.credentialScope !== "factory") return (await routedPersonalDefaults(policy.tenant, deps.modelDefaults).catch((error) => {
|
|
23
|
+
console.warn("[factory] Could not read the personal thinking default; using medium.", error);
|
|
27
24
|
return null;
|
|
28
|
-
}))?.thinkingLevel ??
|
|
25
|
+
}))?.thinkingLevel ?? "medium";
|
|
26
|
+
const factoryProjectId = policy ? policy.factoryProjectId ?? sessionlessFactoryProjectId(controller) : await unsignedFactoryProjectId(controller, deps);
|
|
27
|
+
return (factoryProjectId ? await deps.projects.getById({ id: factoryProjectId }) : null)?.defaultThinkingLevel ?? "medium";
|
|
29
28
|
} catch (error) {
|
|
30
29
|
console.warn("[factory] Could not read the thinking default; using medium.", error);
|
|
31
|
-
return
|
|
30
|
+
return DEFAULT_THINKING_LEVEL;
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
|
-
//#endregion
|
|
35
33
|
export { resolveFactoryThinkingLevel };
|
|
36
34
|
|
|
37
35
|
//# sourceMappingURL=thinking-default.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-default.js","names":[],"sources":["../../src/session/thinking-default.ts"],"sourcesContent":["import type { ThinkingLevelSetting } from '@mastra/code-sdk/thinking';\nimport type { AgentControllerRequestContext } from '@mastra/core/agent-controller';\nimport type { RequestContext } from '@mastra/core/request-context';\n\nimport {
|
|
1
|
+
{"version":3,"file":"thinking-default.js","names":[],"sources":["../../src/session/thinking-default.ts"],"sourcesContent":["import type { ThinkingLevelSetting } from '@mastra/code-sdk/thinking';\nimport type { AgentControllerRequestContext } from '@mastra/core/agent-controller';\nimport type { RequestContext } from '@mastra/core/request-context';\n\nimport { DEFAULT_THINKING_LEVEL } from '../default-thinking-level.js';\nimport { UUID_PATTERN } from '../routes/contracts.js';\nimport type { ModelDefaultsStorage } from '../storage/domains/model-defaults/base.js';\nimport { resolveFactoryModelPolicy, routedPersonalDefaults } from './credential-policy.js';\nimport type { FactoryModelPolicyDependencies } from './credential-policy.js';\n\nconst FACTORY_PROJECT_ID = new RegExp(UUID_PATTERN);\n\ninterface FactoryThinkingDefaultDependencies extends FactoryModelPolicyDependencies {\n modelDefaults: Pick<ModelDefaultsStorage, 'ensureReady' | 'get'>;\n}\n\nfunction sessionlessFactoryProjectId(controller: AgentControllerRequestContext): string | undefined {\n const stateProjectId = (controller.getState?.() as { factoryProjectId?: unknown } | undefined)?.factoryProjectId;\n if (typeof stateProjectId === 'string' && stateProjectId) return stateProjectId;\n // Session-less Factory pages address the Factory itself: the resourceId is the project id.\n const { resourceId } = controller;\n return resourceId && FACTORY_PROJECT_ID.test(resourceId) ? resourceId : undefined;\n}\n\nasync function unsignedFactoryProjectId(\n controller: AgentControllerRequestContext,\n deps: FactoryThinkingDefaultDependencies,\n): Promise<string | undefined> {\n const sourceSession = controller.sessionId ? await deps.sourceControl.getBySessionId(controller.sessionId) : null;\n return sourceSession?.factoryProjectId ?? sessionlessFactoryProjectId(controller);\n}\n\n/** A session's unpicked thinking level: the level of the defaults set it routes to; unsigned requests get the Factory's. */\nexport async function resolveFactoryThinkingLevel(\n requestContext: RequestContext | undefined,\n deps: FactoryThinkingDefaultDependencies,\n): Promise<ThinkingLevelSetting> {\n if (!requestContext) return DEFAULT_THINKING_LEVEL;\n const controller = requestContext.get('controller') as AgentControllerRequestContext | undefined;\n if (!controller) return DEFAULT_THINKING_LEVEL;\n try {\n const policy = await resolveFactoryModelPolicy(requestContext, deps);\n if (policy && policy.tenant.credentialScope !== 'factory') {\n const personalDefaults = await routedPersonalDefaults(policy.tenant, deps.modelDefaults).catch(error => {\n console.warn('[factory] Could not read the personal thinking default; using medium.', error);\n return null;\n });\n return personalDefaults?.thinkingLevel ?? DEFAULT_THINKING_LEVEL;\n }\n const factoryProjectId = policy\n ? (policy.factoryProjectId ?? sessionlessFactoryProjectId(controller))\n : await unsignedFactoryProjectId(controller, deps);\n const project = factoryProjectId ? await deps.projects.getById({ id: factoryProjectId }) : null;\n return project?.defaultThinkingLevel ?? DEFAULT_THINKING_LEVEL;\n } catch (error) {\n // A missed lookup costs reasoning depth, not the run.\n console.warn('[factory] Could not read the thinking default; using medium.', error);\n return DEFAULT_THINKING_LEVEL;\n }\n}\n"],"mappings":";;;;AAUA,MAAM,qBAAqB,IAAI,OAAO,YAAY;AAMlD,SAAS,4BAA4B,YAA+D;CAClG,MAAM,kBAAkB,WAAW,WAAW,EAAA,EAAkD;CAChG,IAAI,OAAO,mBAAmB,YAAY,gBAAgB,OAAO;CAEjE,MAAM,EAAE,eAAe;CACvB,OAAO,cAAc,mBAAmB,KAAK,UAAU,IAAI,aAAa,KAAA;AAC1E;AAEA,eAAe,yBACb,YACA,MAC6B;CAE7B,QADsB,WAAW,YAAY,MAAM,KAAK,cAAc,eAAe,WAAW,SAAS,IAAI,KAAA,EACvF,oBAAoB,4BAA4B,UAAU;AAClF;;AAGA,eAAsB,4BACpB,gBACA,MAC+B;CAC/B,IAAI,CAAC,gBAAgB,OAAO;CAC5B,MAAM,aAAa,eAAe,IAAI,YAAY;CAClD,IAAI,CAAC,YAAY,OAAO;CACxB,IAAI;EACF,MAAM,SAAS,MAAM,0BAA0B,gBAAgB,IAAI;EACnE,IAAI,UAAU,OAAO,OAAO,oBAAoB,WAK9C,QAAO,MAJwB,uBAAuB,OAAO,QAAQ,KAAK,aAAa,CAAC,CAAC,OAAM,UAAS;GACtG,QAAQ,KAAK,yEAAyE,KAAK;GAC3F,OAAO;EACT,CAAC,EAAA,EACwB,iBAAA;EAE3B,MAAM,mBAAmB,SACpB,OAAO,oBAAoB,4BAA4B,UAAU,IAClE,MAAM,yBAAyB,YAAY,IAAI;EAEnD,QADgB,mBAAmB,MAAM,KAAK,SAAS,QAAQ,EAAE,IAAI,iBAAiB,CAAC,IAAI,KAAA,EAC3E,wBAAA;CAClB,SAAS,OAAO;EAEd,QAAQ,KAAK,gEAAgE,KAAK;EAClF,OAAO;CACT;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/session/thread-session-stamp.ts
|
|
2
2
|
/**
|
|
3
3
|
* Stamp each thread a session creates with `factorySessionId`. Sessions share
|
|
4
4
|
* their Factory's or user's resource, so the stamp is what ties a new thread
|
|
@@ -14,7 +14,6 @@ function observeSessionThreadStamp(session) {
|
|
|
14
14
|
}).catch((error) => console.warn("[Factory thread stamp] Unable to tie the new thread to its session.", error));
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
//#endregion
|
|
18
17
|
export { observeSessionThreadStamp };
|
|
19
18
|
|
|
20
19
|
//# sourceMappingURL=thread-session-stamp.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalizeSessionTitle } from "./session-title.js";
|
|
2
|
-
|
|
2
|
+
// src/session/thread-title-mirror.ts
|
|
3
3
|
/**
|
|
4
4
|
* Project the bound thread's title onto its source-control session row, from
|
|
5
5
|
* whichever namer produced it — core on the first turn, the observational-memory
|
|
@@ -45,7 +45,6 @@ function observeSessionThreadTitle(session, { sourceControl }) {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
//#endregion
|
|
49
48
|
export { observeSessionThreadTitle };
|
|
50
49
|
|
|
51
50
|
//# sourceMappingURL=thread-title-mirror.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-title-mirror.js","names":[],"sources":["../../src/session/thread-title-mirror.ts"],"sourcesContent":["import type { AgentControllerEvent, AgentControllerThread } from '@mastra/core/agent-controller';\n\nimport type { SourceControlStorageHandle } from '../storage/domains/source-control/base.js';\nimport { normalizeSessionTitle } from './session-title.js';\n\nexport interface ThreadTitleMirrorSession {\n readonly identity: { getId(): string };\n readonly thread: { getById(args: { threadId: string }): Promise<AgentControllerThread | null> };\n subscribe(listener: (event: AgentControllerEvent) => void): () => void;\n}\n\nexport interface ThreadTitleMirrorDependencies {\n sourceControl: {\n sessions: Pick<SourceControlStorageHandle['sessions'], 'getBySessionId' | 'rename'>;\n };\n}\n\n/**\n * Project the bound thread's title onto its source-control session row, from\n * whichever namer produced it — core on the first turn, the observational-memory\n * observer as the thread grows, or an explicit rename.\n *\n * The factory sidebar reads the session row, which otherwise keeps the raw first\n * prompt (chat sessions) or nothing at all (work sessions, which then show their\n * branch). Binding a thread reconciles the row against the stored title, so a\n * session started before this ran — or one whose rename event was missed — is\n * named the next time it is opened.\n *\n * A session names threads it is no longer showing, and each write reads the row\n * before replacing it. Titles for any other thread are therefore dropped, and\n * writes run one at a time so the last event wins rather than the fastest.\n */\nexport function observeSessionThreadTitle(\n session: ThreadTitleMirrorSession,\n { sourceControl }: ThreadTitleMirrorDependencies,\n): () => void {\n const sessionId = session.identity.getId();\n let boundThreadId: string | undefined;\n let writes: Promise<void> = Promise.resolve();\n\n const project = (threadId: string, rawTitle: string | undefined): void => {\n // A thread can be named before anything binds one, so the first thread to\n // surface a title speaks for the row until `thread_changed` rebinds it.\n boundThreadId ??= threadId;\n if (threadId !== boundThreadId) return;\n const title = rawTitle ? normalizeSessionTitle(rawTitle) : null;\n if (!title) return;\n\n writes = writes\n .then(async () => {\n if (threadId !== boundThreadId) return;\n const row = await sourceControl.sessions.getBySessionId(sessionId);\n if (!row || row.title === title) return;\n await sourceControl.sessions.rename({ sessionId, title });\n })\n .catch(error => console.warn('[Factory thread-title mirror] Unable to persist the session title.', error));\n };\n\n return session.subscribe(event => {\n switch (event.type) {\n case 'thread_title_updated':\n return project(event.threadId, event.title);\n case 'om_thread_title_updated':\n return project(event.threadId, event.newTitle);\n case 'thread_changed': {\n boundThreadId = event.threadId;\n void session.thread\n .getById({ threadId: event.threadId })\n .then(thread => project(event.threadId, thread?.title))\n .catch(error => console.warn('[Factory thread-title mirror] Unable to read the bound thread.', error));\n return;\n }\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgCA,SAAgB,0BACd,SACA,EAAE,iBACU;CACZ,MAAM,YAAY,QAAQ,SAAS,MAAM;CACzC,IAAI;CACJ,IAAI,SAAwB,QAAQ,QAAQ;CAE5C,MAAM,WAAW,UAAkB,aAAuC;EAGxE,kBAAkB;EAClB,IAAI,aAAa,eAAe;EAChC,MAAM,QAAQ,WAAW,sBAAsB,QAAQ,IAAI;EAC3D,IAAI,CAAC,OAAO;EAEZ,SAAS,OACN,KAAK,YAAY;GAChB,IAAI,aAAa,eAAe;GAChC,MAAM,MAAM,MAAM,cAAc,SAAS,eAAe,SAAS;GACjE,IAAI,CAAC,OAAO,IAAI,UAAU,OAAO;GACjC,MAAM,cAAc,SAAS,OAAO;IAAE;IAAW;GAAM,CAAC;EAC1D,CAAC,CAAC,CACD,OAAM,UAAS,QAAQ,KAAK,sEAAsE,KAAK,CAAC;CAC7G;CAEA,OAAO,QAAQ,WAAU,UAAS;EAChC,QAAQ,MAAM,MAAd;GACE,KAAK,wBACH,OAAO,QAAQ,MAAM,UAAU,MAAM,KAAK;GAC5C,KAAK,2BACH,OAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ;GAC/C,KAAK;IACH,gBAAgB,MAAM;IACtB,QAAa,OACV,QAAQ,EAAE,UAAU,MAAM,SAAS,CAAC,CAAC,CACrC,MAAK,WAAU,QAAQ,MAAM,UAAU,QAAQ,KAAK,CAAC,CAAC,CACtD,OAAM,UAAS,QAAQ,KAAK,kEAAkE,KAAK,CAAC;IACvG;EAEJ;CACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"thread-title-mirror.js","names":[],"sources":["../../src/session/thread-title-mirror.ts"],"sourcesContent":["import type { AgentControllerEvent, AgentControllerThread } from '@mastra/core/agent-controller';\n\nimport type { SourceControlStorageHandle } from '../storage/domains/source-control/base.js';\nimport { normalizeSessionTitle } from './session-title.js';\n\nexport interface ThreadTitleMirrorSession {\n readonly identity: { getId(): string };\n readonly thread: { getById(args: { threadId: string }): Promise<AgentControllerThread | null> };\n subscribe(listener: (event: AgentControllerEvent) => void): () => void;\n}\n\nexport interface ThreadTitleMirrorDependencies {\n sourceControl: {\n sessions: Pick<SourceControlStorageHandle['sessions'], 'getBySessionId' | 'rename'>;\n };\n}\n\n/**\n * Project the bound thread's title onto its source-control session row, from\n * whichever namer produced it — core on the first turn, the observational-memory\n * observer as the thread grows, or an explicit rename.\n *\n * The factory sidebar reads the session row, which otherwise keeps the raw first\n * prompt (chat sessions) or nothing at all (work sessions, which then show their\n * branch). Binding a thread reconciles the row against the stored title, so a\n * session started before this ran — or one whose rename event was missed — is\n * named the next time it is opened.\n *\n * A session names threads it is no longer showing, and each write reads the row\n * before replacing it. Titles for any other thread are therefore dropped, and\n * writes run one at a time so the last event wins rather than the fastest.\n */\nexport function observeSessionThreadTitle(\n session: ThreadTitleMirrorSession,\n { sourceControl }: ThreadTitleMirrorDependencies,\n): () => void {\n const sessionId = session.identity.getId();\n let boundThreadId: string | undefined;\n let writes: Promise<void> = Promise.resolve();\n\n const project = (threadId: string, rawTitle: string | undefined): void => {\n // A thread can be named before anything binds one, so the first thread to\n // surface a title speaks for the row until `thread_changed` rebinds it.\n boundThreadId ??= threadId;\n if (threadId !== boundThreadId) return;\n const title = rawTitle ? normalizeSessionTitle(rawTitle) : null;\n if (!title) return;\n\n writes = writes\n .then(async () => {\n if (threadId !== boundThreadId) return;\n const row = await sourceControl.sessions.getBySessionId(sessionId);\n if (!row || row.title === title) return;\n await sourceControl.sessions.rename({ sessionId, title });\n })\n .catch(error => console.warn('[Factory thread-title mirror] Unable to persist the session title.', error));\n };\n\n return session.subscribe(event => {\n switch (event.type) {\n case 'thread_title_updated':\n return project(event.threadId, event.title);\n case 'om_thread_title_updated':\n return project(event.threadId, event.newTitle);\n case 'thread_changed': {\n boundThreadId = event.threadId;\n void session.thread\n .getById({ threadId: event.threadId })\n .then(thread => project(event.threadId, thread?.title))\n .catch(error => console.warn('[Factory thread-title mirror] Unable to read the bound thread.', error));\n return undefined;\n }\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgCA,SAAgB,0BACd,SACA,EAAE,iBACU;CACZ,MAAM,YAAY,QAAQ,SAAS,MAAM;CACzC,IAAI;CACJ,IAAI,SAAwB,QAAQ,QAAQ;CAE5C,MAAM,WAAW,UAAkB,aAAuC;EAGxE,kBAAkB;EAClB,IAAI,aAAa,eAAe;EAChC,MAAM,QAAQ,WAAW,sBAAsB,QAAQ,IAAI;EAC3D,IAAI,CAAC,OAAO;EAEZ,SAAS,OACN,KAAK,YAAY;GAChB,IAAI,aAAa,eAAe;GAChC,MAAM,MAAM,MAAM,cAAc,SAAS,eAAe,SAAS;GACjE,IAAI,CAAC,OAAO,IAAI,UAAU,OAAO;GACjC,MAAM,cAAc,SAAS,OAAO;IAAE;IAAW;GAAM,CAAC;EAC1D,CAAC,CAAC,CACD,OAAM,UAAS,QAAQ,KAAK,sEAAsE,KAAK,CAAC;CAC7G;CAEA,OAAO,QAAQ,WAAU,UAAS;EAChC,QAAQ,MAAM,MAAd;GACE,KAAK,wBACH,OAAO,QAAQ,MAAM,UAAU,MAAM,KAAK;GAC5C,KAAK,2BACH,OAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ;GAC/C,KAAK;IACH,gBAAgB,MAAM;IACtB,QAAa,OACV,QAAQ,EAAE,UAAU,MAAM,SAAS,CAAC,CAAC,CACrC,MAAK,WAAU,QAAQ,MAAM,UAAU,QAAQ,KAAK,CAAC,CAAC,CACtD,OAAM,UAAS,QAAQ,KAAK,kEAAkE,KAAK,CAAC;IACvG;EAEJ;CACF,CAAC;AACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SourceControlConnectionNotFoundError } from "../storage/domains/source-control/base.js";
|
|
2
|
-
|
|
2
|
+
// src/session/work-item-repository.ts
|
|
3
3
|
async function listLinkedRepositories(args) {
|
|
4
4
|
const { sourceControl, orgId, factoryProjectId } = args;
|
|
5
5
|
const connections = await sourceControl.connections.list({
|
|
@@ -107,7 +107,6 @@ async function resolveWorkItemRepository(args) {
|
|
|
107
107
|
candidates
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
//#endregion
|
|
111
110
|
export { resolveWorkItemRepository };
|
|
112
111
|
|
|
113
112
|
//# sourceMappingURL=work-item-repository.js.map
|
package/dist/skills/catalog.js
CHANGED
|
@@ -2,7 +2,7 @@ import { BUNDLED_FACTORY_SKILLS_PATH, FACTORY_SKILL_NAMES, resolveLocalFactorySk
|
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { readFile } from "fs/promises";
|
|
4
4
|
import { validateSkillContent } from "@mastra/core/skills";
|
|
5
|
-
|
|
5
|
+
// src/skills/catalog.ts
|
|
6
6
|
/**
|
|
7
7
|
* Read-only catalog of the Factory skills.
|
|
8
8
|
*
|
|
@@ -56,7 +56,6 @@ async function listFactorySkills() {
|
|
|
56
56
|
}
|
|
57
57
|
return skills;
|
|
58
58
|
}
|
|
59
|
-
//#endregion
|
|
60
59
|
export { listFactorySkills };
|
|
61
60
|
|
|
62
61
|
//# sourceMappingURL=catalog.js.map
|
package/dist/skills/service.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { REVIEW_ONLY_FACTORY_SKILLS, rescanFactorySkills } from "../workspace.js";
|
|
2
2
|
import { formatSkillActivation } from "@mastra/core/workspace";
|
|
3
|
-
|
|
3
|
+
// src/skills/service.ts
|
|
4
4
|
var SkillInvocationError = class extends Error {
|
|
5
5
|
code;
|
|
6
6
|
constructor(code, message) {
|
|
@@ -72,7 +72,6 @@ async function resolveSkillResumeInvocation(controller, input) {
|
|
|
72
72
|
contents
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
//#endregion
|
|
76
75
|
export { SkillInvocationError, formatSkillMessage, resolvePromptInvocation, resolveSkillInvocation, resolveSkillResumeInvocation };
|
|
77
76
|
|
|
78
77
|
//# sourceMappingURL=service.js.map
|
package/dist/spa-static.js
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync } from "fs";
|
|
|
2
2
|
import { dirname, extname, join, normalize, resolve, sep } from "path";
|
|
3
3
|
import { fileURLToPath } from "url";
|
|
4
4
|
import { readFile, stat } from "fs/promises";
|
|
5
|
-
|
|
5
|
+
// src/spa-static.ts
|
|
6
6
|
/**
|
|
7
7
|
* Same-origin SPA serving for production.
|
|
8
8
|
*
|
|
@@ -98,7 +98,6 @@ function createSpaStaticMiddleware(uiDist) {
|
|
|
98
98
|
return next();
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
-
//#endregion
|
|
102
101
|
export { createSpaStaticMiddleware, resolveUiDistDir };
|
|
103
102
|
|
|
104
103
|
//# sourceMappingURL=spa-static.js.map
|
package/dist/state-signing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHmac, timingSafeEqual } from "crypto";
|
|
2
|
-
|
|
2
|
+
// src/state-signing.ts
|
|
3
3
|
/**
|
|
4
4
|
* Shared OAuth/install `state` signing for web integrations.
|
|
5
5
|
*
|
|
@@ -77,7 +77,6 @@ function createStateSigner(secret) {
|
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
//#endregion
|
|
81
80
|
export { createStateSigner };
|
|
82
81
|
|
|
83
82
|
//# sourceMappingURL=state-signing.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/audit/actions.ts
|
|
2
2
|
/**
|
|
3
3
|
* Every action the trail can hold, by namespace. Register new ones in the
|
|
4
4
|
* WorkOS dashboard under Audit Logs → Events before the mirror accepts them.
|
|
@@ -64,7 +64,6 @@ function isAuditAction(value) {
|
|
|
64
64
|
function auditActionsInNamespaces(namespaces) {
|
|
65
65
|
return namespaces.flatMap((namespace) => AUDIT_ACTIONS[namespace].map((leaf) => `factory.${namespace}.${leaf}`));
|
|
66
66
|
}
|
|
67
|
-
//#endregion
|
|
68
67
|
export { AUDIT_ACTIONS, auditActionsInNamespaces, auditNamespaces, isAuditAction, isAuditNamespace, parseAuditAction };
|
|
69
68
|
|
|
70
69
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/audit/actors.ts
|
|
2
2
|
const AUDIT_ACTOR_TYPES = [
|
|
3
3
|
"human",
|
|
4
4
|
"agent",
|
|
@@ -19,7 +19,6 @@ function isHumanActorId(actorId) {
|
|
|
19
19
|
if (!actorId) return false;
|
|
20
20
|
return !AUTOMATION_ACTORS.has(actorId) && !actorId.startsWith("agent:") && !actorId.startsWith("github:");
|
|
21
21
|
}
|
|
22
|
-
//#endregion
|
|
23
22
|
export { AUDIT_ACTOR_TYPES, isAuditActorType, isHumanActorId };
|
|
24
23
|
|
|
25
24
|
//# sourceMappingURL=actors.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { executableCommand, runsPullRequestCreate } from "../../../session/shell-commands.js";
|
|
2
|
-
|
|
2
|
+
// src/storage/domains/audit/agent-audit.ts
|
|
3
3
|
/** Match command-start positions while ignoring command text embedded in heredoc bodies. */
|
|
4
4
|
const GIT_COMMIT_RE = /(?:^|\n|;|&&|\|\|)\s*git\s+commit(?:\s|$)/;
|
|
5
5
|
const GIT_PUSH_RE = /(?:^|\n|;|&&|\|\|)\s*git\s+push(?:\s|$)/;
|
|
@@ -87,7 +87,6 @@ async function observeAgentGitAction({ audit, toolContext, resolveRepositorySlug
|
|
|
87
87
|
console.warn("[Audit] Failed to observe agent git action", { error: err instanceof Error ? err.message : String(err) });
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
//#endregion
|
|
91
90
|
export { observeAgentGitAction };
|
|
92
91
|
|
|
93
92
|
//# sourceMappingURL=agent-audit.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FactoryStorageDomain, UniqueViolationError } from "@mastra/core/storage";
|
|
2
|
-
|
|
2
|
+
// src/storage/domains/audit/base.ts
|
|
3
3
|
/**
|
|
4
4
|
* Factory audit events domain — the append-only "who did what, when" trail
|
|
5
5
|
* behind the software factory.
|
|
@@ -218,7 +218,6 @@ var AuditStorage = class extends FactoryStorageDomain {
|
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
|
-
//#endregion
|
|
222
221
|
export { ACTOR_PROFILE_METADATA_KEY, AUDIT_EVENTS_SCHEMA, AuditStorage, auditActorProfile, auditCursorAt, boundAuditMetadata, clampAuditLimit, decodeAuditAfterCursor, decodeAuditCursor, encodeAuditCursor };
|
|
223
222
|
|
|
224
223
|
//# sourceMappingURL=base.js.map
|
|
@@ -4,7 +4,7 @@ import { auditActionsInNamespaces, isAuditNamespace } from "./actions.js";
|
|
|
4
4
|
import { isHumanActorId } from "./actors.js";
|
|
5
5
|
import { toWireAuditEvent } from "./wire.js";
|
|
6
6
|
import { registerApiRoute } from "@mastra/core/server";
|
|
7
|
-
|
|
7
|
+
// src/storage/domains/audit/domain.ts
|
|
8
8
|
function readStoredActorProfile(metadata) {
|
|
9
9
|
if (!metadata) return void 0;
|
|
10
10
|
const raw = metadata[ACTOR_PROFILE_METADATA_KEY];
|
|
@@ -242,7 +242,6 @@ var AuditDomain = class {
|
|
|
242
242
|
};
|
|
243
243
|
}
|
|
244
244
|
};
|
|
245
|
-
//#endregion
|
|
246
245
|
export { AuditDomain, auditRequestContext, auditRequestOrigin };
|
|
247
246
|
|
|
248
247
|
//# sourceMappingURL=domain.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/audit/wire.ts
|
|
2
2
|
function toWireAuditEvent(row) {
|
|
3
3
|
return {
|
|
4
4
|
id: row.id,
|
|
@@ -10,7 +10,6 @@ function toWireAuditEvent(row) {
|
|
|
10
10
|
occurredAt: row.occurredAt.toISOString()
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
//#endregion
|
|
14
13
|
export { toWireAuditEvent };
|
|
15
14
|
|
|
16
15
|
//# sourceMappingURL=wire.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FactoryStorageDomain } from "@mastra/core/storage";
|
|
2
|
-
|
|
2
|
+
// src/storage/domains/channel-identity/base.ts
|
|
3
3
|
const CHANNEL_ACCOUNT_LINKS_SCHEMA = {
|
|
4
4
|
name: "channel_account_links",
|
|
5
5
|
columns: {
|
|
@@ -158,7 +158,6 @@ var ChannelIdentityStorage = class extends FactoryStorageDomain {
|
|
|
158
158
|
}) > 0;
|
|
159
159
|
}
|
|
160
160
|
};
|
|
161
|
-
//#endregion
|
|
162
161
|
export { CHANNEL_ACCOUNT_LINKS_SCHEMA, ChannelIdentityStorage };
|
|
163
162
|
|
|
164
163
|
//# sourceMappingURL=base.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isMentionableActorId } from "./actor.js";
|
|
2
2
|
import { UniqueViolationError } from "@mastra/core/storage";
|
|
3
|
-
|
|
3
|
+
// src/storage/domains/comments/activity.ts
|
|
4
4
|
/** The actor rule-materialized work items are created by; a phantom, never a participant. */
|
|
5
5
|
const RULE_DISPATCHER_ACTOR_ID = "factory-rule-dispatcher";
|
|
6
6
|
/** Ceiling: an author silent for this many comments stops receiving; a real participants table is the upgrade. */
|
|
@@ -88,7 +88,6 @@ async function listActivityForUser(ops, { orgId, factoryProjectId, userId, befor
|
|
|
88
88
|
...before ? { cursor: { values: [before.occurredAt, before.id] } } : {}
|
|
89
89
|
})).map(toWorkItemActivity);
|
|
90
90
|
}
|
|
91
|
-
//#endregion
|
|
92
91
|
export { PARTICIPANT_SCAN_LIMIT, fanOutWorkItemActivity, listActivityForUser };
|
|
93
92
|
|
|
94
93
|
//# sourceMappingURL=activity.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/comments/actor.ts
|
|
2
2
|
function isMentionableActorId(id) {
|
|
3
3
|
return id.length > 0 && !id.includes(":");
|
|
4
4
|
}
|
|
@@ -32,7 +32,6 @@ function actorFromChannelAuthor(external, link) {
|
|
|
32
32
|
external
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
//#endregion
|
|
36
35
|
export { actorFromAgentBinding, actorFromAuthUser, actorFromChannelAuthor, isMentionableActorId };
|
|
37
36
|
|
|
38
37
|
//# sourceMappingURL=actor.js.map
|
|
@@ -3,7 +3,7 @@ import { FACTORY_BOARD_VERSIONS_SCHEMA, bumpBoardVersions, trackBoardWrites } fr
|
|
|
3
3
|
import { externalSourceKey } from "../work-items/base.js";
|
|
4
4
|
import { fanOutWorkItemActivity, listActivityForUser } from "./activity.js";
|
|
5
5
|
import { FactoryStorageDomain, UniqueViolationError } from "@mastra/core/storage";
|
|
6
|
-
|
|
6
|
+
// src/storage/domains/comments/base.ts
|
|
7
7
|
/**
|
|
8
8
|
* Work-item comments domain — one message list per work item, materialized
|
|
9
9
|
* from every source. Local creates and platform mirrors (Slack, Linear,
|
|
@@ -527,7 +527,6 @@ var WorkItemCommentsStorage = class extends FactoryStorageDomain {
|
|
|
527
527
|
}
|
|
528
528
|
}
|
|
529
529
|
};
|
|
530
|
-
//#endregion
|
|
531
530
|
export { CommentTokenConflictError, MAX_COMMENT_BODY_LENGTH, MAX_COMMENT_MENTIONS, MAX_COMMENT_QUOTE_LENGTH, WORK_ITEM_ACTIVITY_SCHEMA, WORK_ITEM_COMMENTS_SCHEMA, WORK_ITEM_COMMENT_MENTIONS_SCHEMA, WorkItemCommentsStorage, clampCommentLimit, commentBodyError, commentSourceKey, decodeCommentCursor, encodeCommentCursor, supersedesFeedActivity };
|
|
532
531
|
|
|
533
532
|
//# sourceMappingURL=base.js.map
|
|
@@ -4,7 +4,7 @@ import { factoryMentionAttentionIdentity } from "../work-items/base.js";
|
|
|
4
4
|
import { CommentTokenConflictError, commentBodyError } from "./base.js";
|
|
5
5
|
import { toWireComment } from "./wire.js";
|
|
6
6
|
import { buildCommentRoutes } from "./routes.js";
|
|
7
|
-
|
|
7
|
+
// src/storage/domains/comments/domain.ts
|
|
8
8
|
const MAX_ROSTER_SIZE = 100;
|
|
9
9
|
const ROSTER_CACHE_TTL_MS = 6e4;
|
|
10
10
|
var CommentsDomain = class {
|
|
@@ -279,7 +279,6 @@ var CommentsDomain = class {
|
|
|
279
279
|
});
|
|
280
280
|
}
|
|
281
281
|
};
|
|
282
|
-
//#endregion
|
|
283
282
|
export { CommentsDomain, toWireComment };
|
|
284
283
|
|
|
285
284
|
//# sourceMappingURL=domain.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/comments/feed-context.ts
|
|
2
2
|
/** The one block that may trail a skill envelope in a kickoff; both transcript renderers allow only it. */
|
|
3
3
|
const WORK_ITEM_FEED_TAG = "work-item-feed";
|
|
4
4
|
const MAX_FEED_COMMENTS = 20;
|
|
@@ -83,7 +83,6 @@ async function withWorkItemFeed(reader, scope, message) {
|
|
|
83
83
|
workItemId
|
|
84
84
|
}));
|
|
85
85
|
}
|
|
86
|
-
//#endregion
|
|
87
86
|
export { FactoryFeedReader, WORK_ITEM_FEED_TAG, withFeedContext, withWorkItemFeed };
|
|
88
87
|
|
|
89
88
|
//# sourceMappingURL=feed-context.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isMentionableActorId } from "./actor.js";
|
|
2
2
|
import { commentBodyError } from "./base.js";
|
|
3
|
-
|
|
3
|
+
// src/storage/domains/comments/parse.ts
|
|
4
4
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
5
5
|
const CLIENT_TOKEN_RE = /^[A-Za-z0-9-]{8,64}$/;
|
|
6
6
|
function isRecord(value) {
|
|
@@ -84,7 +84,6 @@ function parseEditCommentBody(raw) {
|
|
|
84
84
|
...expectedRevision !== void 0 ? { expectedRevision } : {}
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
//#endregion
|
|
88
87
|
export { UUID_RE, isRecord, parseCreateCommentBody, parseEditCommentBody, readJson };
|
|
89
88
|
|
|
90
89
|
//# sourceMappingURL=parse.js.map
|
|
@@ -7,7 +7,7 @@ import { toWireComment } from "./wire.js";
|
|
|
7
7
|
import { registerApiRoute } from "@mastra/core/server";
|
|
8
8
|
import { withAck } from "@mastra/core/events";
|
|
9
9
|
import { streamSSE } from "hono/streaming";
|
|
10
|
-
|
|
10
|
+
// src/storage/domains/comments/routes.ts
|
|
11
11
|
/**
|
|
12
12
|
* HTTP for the item feed. Every handler is the same shape: resolve the tenant,
|
|
13
13
|
* validate the path ids, delegate to a `CommentsDomain` service method, map its
|
|
@@ -296,7 +296,6 @@ function buildCommentRoutes(dependencies) {
|
|
|
296
296
|
})
|
|
297
297
|
];
|
|
298
298
|
}
|
|
299
|
-
//#endregion
|
|
300
299
|
export { buildCommentRoutes };
|
|
301
300
|
|
|
302
301
|
//# sourceMappingURL=routes.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/comments/schema.ts
|
|
2
2
|
const WORK_ITEM_COMMENTS_SCHEMA = {
|
|
3
3
|
name: "work_item_comments",
|
|
4
4
|
columns: {
|
|
@@ -173,7 +173,6 @@ const WORK_ITEM_ACTIVITY_SCHEMA = {
|
|
|
173
173
|
]
|
|
174
174
|
}]
|
|
175
175
|
};
|
|
176
|
-
//#endregion
|
|
177
176
|
export { WORK_ITEM_ACTIVITY_SCHEMA, WORK_ITEM_COMMENTS_SCHEMA, WORK_ITEM_COMMENT_MENTIONS_SCHEMA };
|
|
178
177
|
|
|
179
178
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/storage/domains/comments/wire.ts
|
|
2
2
|
const LOCAL_SOURCE_KEY_PREFIX = "local:comment:";
|
|
3
3
|
function toWireAuthor({ kind, id, displayName, avatarUrl }) {
|
|
4
4
|
return {
|
|
@@ -31,7 +31,6 @@ function toWireComment(comment, viewerId) {
|
|
|
31
31
|
...comment.deletedAt ? { deletedAt: comment.deletedAt.toISOString() } : {}
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
//#endregion
|
|
35
34
|
export { toWireComment };
|
|
36
35
|
|
|
37
36
|
//# sourceMappingURL=wire.js.map
|
|
@@ -39,6 +39,8 @@ export interface CredentialRecord {
|
|
|
39
39
|
scope: CredentialScope;
|
|
40
40
|
credential: AuthCredential;
|
|
41
41
|
updatedAt: Date;
|
|
42
|
+
/** When the last OAuth token refresh failed; cleared by the next successful refresh or a new sign-in. */
|
|
43
|
+
refreshFailedAt?: Date;
|
|
42
44
|
}
|
|
43
45
|
/** Result of per-caller resolution: the winning credential and its scope. */
|
|
44
46
|
export interface ResolvedCredential {
|
|
@@ -109,7 +111,8 @@ export declare class ModelCredentialsStorage extends FactoryStorageDomain {
|
|
|
109
111
|
* rotating refresh tokens. The expiry is re-checked under the lock —
|
|
110
112
|
* another replica may have refreshed already, in which case `refreshFn` is
|
|
111
113
|
* skipped and the fresh credential is returned. Returns `undefined` when no
|
|
112
|
-
* OAuth row exists for the tenant.
|
|
114
|
+
* OAuth row exists for the tenant. A failed `refreshFn` is recorded on the
|
|
115
|
+
* row (surfaced as `CredentialRecord.refreshFailedAt`) and rethrown.
|
|
113
116
|
*/
|
|
114
117
|
refreshOAuth(tenant: CredentialTenant, provider: string, refreshFn: (current: OAuthCredential) => Promise<OAuthCredential>): Promise<OAuthCredential | undefined>;
|
|
115
118
|
/** Persist a pending login flow started by a web route. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/credentials/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAwB,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAsC,MAAM,sBAAsB,CAAC;AAEjG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/credentials/base.ts"],"names":[],"mappings":"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"}
|